Essential Autolisp® Springer Science+ Business Media, LLC Royharkow

Total Page:16

File Type:pdf, Size:1020Kb

Essential Autolisp® Springer Science+ Business Media, LLC Royharkow Essential AutoLISP® Springer Science+ Business Media, LLC RoyHarkow Essential AutoLISP® With a Quick Reference Card and a Diskette Springer RoyHarkow Roy Harkow Associates 40 MacArthur Road Wellesley, MA 02181 USA E-mail: [email protected] AutoLISP, AutoCAD, and AutoCAD Training Center are registered trademarks of Autodesk, lnc. AutoCAD Development System is a trademark of Autodesk, Inc. This book is not an Autodesk product and is not warranted by Autodesk. Library of Congress Cataloging-in-Publication Data Harkow, Roy. Essential AutoLISP 1 Roy Harkow. p. cm. Includes bibliographical references and index. 1. AutoLISP (Computer program language) 1. Title. QA76.73.A84H37 1995 620'.0042'028755369-dc20 95-34192 Printed on acid-free paper. © 1996 Springer Science+Business Media New York Originally published by Springer-Verlag New York, Inc. in 1996 Softcover reprint of the hardcover 1st edition 1996 AH rights reserved. This work may not be translated or copied in whole or in part without the written permission of the publisher (Springer Science+Business Media, LLC), except for brief excerpts in connection with reviews or scholarly analysis. Use in connection with any form of information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed is forbidden. The use of general descriptive names, trade names, trademarks, etc., in this publication, even if the former are not especially identified, is not to be taken as a sign that such names, as understood by the Trade Marks and Merchandise Marks Act, may accordingly be used freely by anyone. Production coordinated by Impressions and managed by Bill Imbomoni; manufacturing super­ vised by Jacqui Ashri. Typeset by Impressions, a division of Edwards Brothers, lnc., Madison, WI. 9 8 7 6 5 4 3 2 ISBN 978-0-387-94571-2 ISBN 978-1-4612-2350-4 (eBook) DOI 10.1007/978-1-4612-2350-4 "If my words did glow With the gold of sunshine ... " -Robert Hunter Contents The Purpose of Essential AutoLISP and What Makes It Unique xiii Why Essential AutoLISP Is Special if You're New to Programming xiv Why Essential AutoLISP Is Special if You're New to AutoLISP xv How to Get Started Quickly xv Why Essential AutoLISP Is Special if You're Already Using AutoLISP xv Acknowledgments xvii Terms and Conventions Used in Essential AutoLISP xxi Windows versus DOS xxiv Release 13 versus Release 12 and Prior Releases xx1v Part I Working with AutoLISP Data 1 1. The AutoLISP World s 1.1 A Short History of Lisp 6 1.1.1 This Book's Approach to Learning AutoLISP 7 1.2 Why AutoLISP? 8 vii Contents 1.3 The AutoLISP World: Understanding the Picture Notation Used in This Book 10 1.4 Numbers 12 1.5 Symbols 14 1.5.1 Values of Symbols 16 1.5.2 nil and t 18 1.6 Strings 19 1. 7 Conses 21 1.8 Lists 26 1. 9 Functions 34 1.10 Basic Functions 37 1.11 Important Points to Remember 52 1.12 Labs 54 2. Printed Representation of AutoLISP Objects 59 2.1 Numbers, Strings, Symbols, and Functions 60 2.2 Conses 62 2.3 Lists 64 2.4 Converting Printed Representation to Picture Notation 74 2.5 Background Topic: Rules for Simplifying Lists 83 2.6 Prefix Notation 86 2.7 The DRAW Program 91 2.8 Important Points to Remember 93 2.9 Labs 94 3. Arithmetic Functions 99 3.1 Basic Arithmetic Functions 100 3.2 Number Conversion 109 3.3 Advanced Topic: Demystifying the Bit Manipulation Functions 111 3.4 Important Points to Remember 120 3.5 Labs 121 Part II Understanding How Code Is Executed in AutoLISP 123 4. Evaluation of AutoLISP Expressions 125 4.1 How the eval Function Processes Our Code 127 4.1.1 How eval Handles Lists 128 4.1.2 Errors Reported by eval 132 4.1.3 Examples 134 4.2 The Eval Flowchart Program 144 4.3 The DRAW Program (Reprise) 146 4.4 Important Points to Remember 147 4.5 Labs 148 viii Contents 5. Writing and Running Functions 153 5.1 Special Operators 154 5.1.1 Using defun to Define Functions 154 5.1.1.1 Theacad.lspFile 170 5.1.2 Using quote to Prevent Evaluation 171 5.1.2.1 Using quote with Symbols 173 5.1.2.2 Using quote with Lists 174 5.1.2.3 Using quote with Other Object Types 176 5.1.2.4 The Quote Character: ' 176 5.1.2.5 The Difference between Data and Code in AutoLISP 178 5.1.2.6 Guidelines for Using quote 178 5.1.3 A Closer Look at setq 179 5.1.4 How Code Is Executed at the Command: Prompt 180 5.1.4.1 The Read-Eval-Print Loop 182 5.1.4.2 The 1> Prompt 185 5.2 Global and Local Variables 186 5.2.1 Creating Local Variables 187 5.2.2 Using Global Variables 191 5.2.3 Advanced Topic: Scoping of Variables 193 5.2.4 AutoCAD System Global Variables 197 5.2.5 Review Topic: Using Symbols in AutoLISP 199 5.3 Creating and Using AutoCAD Commands in AutoLISP 202 5.3.1 Running AutoCAD Commands in AutoLISP 203 5.3.2 Creating AutoCAD Commands in AutoLISP 208 5.4 Important Points to Remember 213 5.5 Labs 216 Part Ill Programming in AutoLISP 223 6. Control Structure: Producing Powerful Programs 225 6.1 Predicate Functions: Asking Yes/No Questions 226 6.1.1 Equality and Comparison Predicates 231 6.2 Conditional Execution of Code 240 6.3 Iteration Functions: Writing Loops to Repeat Code 250 6.4 Advanced Topic: Writing Recursive Functions 265 6.5 Important Points to Remember 271 6.6 Labs 272 7. Working with Lists 279 7.1 Basic List Functions 280 7 .1.1 List Functions Quiz 280 7.1.2 Quiz Answers 282 ix Contents 7.2 Association Lists 293 7.3 Advanced Functions: apply, mapcar, and lambda 297 7.4 Important Points to Remember 303 7.5 Labs 304 8. Input/Output 309 8.1 The get Functions: Building an Elegant User Interface 310 8.1.1 Using initget to Fine-Tune the get Functions 321 8.2 Other 110 Functions 327 8.3 File 110 334 8.3.1 The load Function Revisited 341 8.3.1.1 Automating the Edit-Load Cycle 342 8.3.2 Replacing Standard AutoCAD Commands with Our Own Commands 343 8.3.3 Obtaining Filenames via Dialog Boxes 346 8.4 Advanced File Access 350 8.5 Important Points to Remember 355 8.6 Labs 356 9. Expanding our Auto LISP Toolbox 359 9.1 String Functions 360 9.1.1 Wildcards 365 9.2 Conversion Functions 368 9.2.1 String Conversions 368 9.2.2 Number Conversions 371 9.2.3 Angle Conversions 374 9.2.4 Point Conversions 377 9.3 Measurement Functions 378 9.4 Symbol Manipulation Functions 386 9.5 Graphics Functions 397 9.6 Advanced Topic: Display Control and Device Access 399 9.7 Background Topic: Application-Handling Functions 413 9.8 Labs 415 Part IV Programming AutoCAD's Entity Database 419 10. Accessing and Modifying Entities 421 10.1 Understanding the Entity Database 422 10.1.1 Complex Entities 424 10.2 Entity Name Functions 427 10.3 Entity Data Functions 433 10.4 Handles 448 X Contents 10.5 Advanced Topic: Extended Entity Data (Xdata) 450 10.6 Advanced Topic: Accessing Entities within Blocks 456 10.7 Important Points to Remember 458 10.8 Labs 459 11. Selection Sets and Nongraphical Entities 463 11.1 Basic Selection Set Functions 464 11.2 Using ssget to Build Custom Selection Sets 470 11.2.1 Using Filters with ssget 475 11.2.2 Advanced Topic: Relational Tests and Logical Operators 478 11.3 Nongraphical Entities 484 11.3.1 Symbol Tables 484 11.3.2 Advanced Topic: Dictionaries 494 11.4 Important Points to Remember 496 11.5 Labs 497 Part V Becoming Better AutoLISP Programmers 501 12. Error Handling and Debugging 503 12.1 Frequently Encountered AutoLISP Error Messages 504 12.1.1 Errors Encountered When Loading Files 505 12.1.2 Errors Reported by eval 507 12.1.3 Errors Discovered by Functions 510 12.2 Gotchas! 515 12.3 Error-Handling Subrs 523 12.4 Effective Debugging Techniques 526 13. Programming Style 539 13.1 Writing Readable Programs 540 13.1.1 Using Global Variables 543 13.1.2 Error-Proofing Code 548 13.1.3 Tips and Techniques 552 13.1.4 Writing Larger Programs 556 13.2 Providing Help for Commands We Write 563 13.3 Understanding Other Programmers' Code 574 xi Contents Part VI Introduction to the Computer 579 14. Computer and Programming Basics 581 14.1 Computer Components 582 14.2 Data Representation and Storage 587 14.2.1 Binary Representation of Numbers 588 14.2.2 Bits, Words, and Number Representation 589 14.2.3 Boolean Algebra: Logical AND, lOR, XOR, and NOT 592 14.2.4 Storing Data and Code 595 14.2.5 Advanced Topic: Memory Management 598 14.3 Writing and Running Programs 602 14.3.1 The Edit-Compile-Debug Cycle 605 14.3.2 Calling Functions 611 14.3.3 The AHED Editor 618 14.3.4 The acad.pgp file 621 14.4 Labs 624 Appendixes A. Lab Answers 627 B. ASCII Codes 691 c. Files on the Enclosed Floppy 693 D. Common Error Messages 695 E. Commonly Used Entity Group Codes 697 F. AutoLISP Function Reference 699 Index 709 xii The Purpose of Essential AutoLISP and What Makes It Unique AutoLISP is a wonderful language.
Recommended publications
  • The Machine That Builds Itself: How the Strengths of Lisp Family
    Khomtchouk et al. OPINION NOTE The Machine that Builds Itself: How the Strengths of Lisp Family Languages Facilitate Building Complex and Flexible Bioinformatic Models Bohdan B. Khomtchouk1*, Edmund Weitz2 and Claes Wahlestedt1 *Correspondence: [email protected] Abstract 1Center for Therapeutic Innovation and Department of We address the need for expanding the presence of the Lisp family of Psychiatry and Behavioral programming languages in bioinformatics and computational biology research. Sciences, University of Miami Languages of this family, like Common Lisp, Scheme, or Clojure, facilitate the Miller School of Medicine, 1120 NW 14th ST, Miami, FL, USA creation of powerful and flexible software models that are required for complex 33136 and rapidly evolving domains like biology. We will point out several important key Full list of author information is features that distinguish languages of the Lisp family from other programming available at the end of the article languages and we will explain how these features can aid researchers in becoming more productive and creating better code. We will also show how these features make these languages ideal tools for artificial intelligence and machine learning applications. We will specifically stress the advantages of domain-specific languages (DSL): languages which are specialized to a particular area and thus not only facilitate easier research problem formulation, but also aid in the establishment of standards and best programming practices as applied to the specific research field at hand. DSLs are particularly easy to build in Common Lisp, the most comprehensive Lisp dialect, which is commonly referred to as the “programmable programming language.” We are convinced that Lisp grants programmers unprecedented power to build increasingly sophisticated artificial intelligence systems that may ultimately transform machine learning and AI research in bioinformatics and computational biology.
    [Show full text]
  • Proceedings of the 8Th European Lisp Symposium Goldsmiths, University of London, April 20-21, 2015 Julian Padget (Ed.) Sponsors
    Proceedings of the 8th European Lisp Symposium Goldsmiths, University of London, April 20-21, 2015 Julian Padget (ed.) Sponsors We gratefully acknowledge the support given to the 8th European Lisp Symposium by the following sponsors: WWWLISPWORKSCOM i Organization Programme Committee Julian Padget – University of Bath, UK (chair) Giuseppe Attardi — University of Pisa, Italy Sacha Chua — Toronto, Canada Stephen Eglen — University of Cambridge, UK Marc Feeley — University of Montreal, Canada Matthew Flatt — University of Utah, USA Rainer Joswig — Hamburg, Germany Nick Levine — RavenPack, Spain Henry Lieberman — MIT, USA Christian Queinnec — University Pierre et Marie Curie, Paris 6, France Robert Strandh — University of Bordeaux, France Edmund Weitz — University of Applied Sciences, Hamburg, Germany Local Organization Christophe Rhodes – Goldsmiths, University of London, UK (chair) Richard Lewis – Goldsmiths, University of London, UK Shivi Hotwani – Goldsmiths, University of London, UK Didier Verna – EPITA Research and Development Laboratory, France ii Contents Acknowledgments i Messages from the chairs v Invited contributions Quicklisp: On Beyond Beta 2 Zach Beane µKanren: Running the Little Things Backwards 3 Bodil Stokke Escaping the Heap 4 Ahmon Dancy Unwanted Memory Retention 5 Martin Cracauer Peer-reviewed papers Efficient Applicative Programming Environments for Computer Vision Applications 7 Benjamin Seppke and Leonie Dreschler-Fischer Keyboard? How quaint. Visual Dataflow Implemented in Lisp 15 Donald Fisk P2R: Implementation of
    [Show full text]
  • Gábor Melis to Keynote European Lisp Symposium
    Gábor Melis to Keynote European Lisp Symposium OAKLAND, Calif. — April 14, 2014 —Franz Inc.’s Senior Engineer, Gábor Melis, will be a keynote speaker at the 7th annual European Lisp Symposium (ELS’14) this May in Paris, France. The European Lisp Symposium provides a forum for the discussion and dissemination of all aspects of design, implementationand application of any of the Lisp and Lisp- inspired dialects, including Common Lisp, Scheme, Emacs Lisp, AutoLisp, ISLISP, Dylan, Clojure, ACL2, ECMAScript, Racket, SKILL, Hop etc. Sending Beams into the Parallel Cube A pop-scientific look through the Lisp lens at machine learning, parallelism, software, and prize fighting We send probes into the topic hypercube bounded by machine learning, parallelism, software and contests, demonstrate existing and sketch future Lisp infrastructure, pin the future and foreign arrays down. We take a seemingly random walk along the different paths, watch the scenery of pairwise interactions unfold and piece a puzzle together. In the purely speculative thread, we compare models of parallel computation, keeping an eye on their applicability and lisp support. In the the Python and R envy thread, we detail why lisp could be a better vehicle for scientific programming and how high performance computing is eroding lisp’s largely unrealized competitive advantages. Switching to constructive mode, a basic data structure is proposed as a first step. In the machine learning thread, lisp’s unparalleled interactive capabilities meet contests, neural networks cross threads and all get in the way of the presentation. Video Presentation About Gábor Melis Gábor Melis is a consultant at Franz Inc.
    [Show full text]
  • A Python Implementation for Racket
    PyonR: A Python Implementation for Racket Pedro Alexandre Henriques Palma Ramos Thesis to obtain the Master of Science Degree in Information Systems and Computer Engineering Supervisor: António Paulo Teles de Menezes Correia Leitão Examination Committee Chairperson: Prof. Dr. José Manuel da Costa Alves Marques Supervisor: Prof. Dr. António Paulo Teles de Menezes Correia Leitão Member of the Committee: Prof. Dr. João Coelho Garcia October 2014 ii Agradecimentos Agradec¸o... Em primeiro lugar ao Prof. Antonio´ Leitao,˜ por me ter dado a oportunidade de participar no projecto Rosetta com esta tese de mestrado, por todos os sabios´ conselhos e pelos momentos de discussao˜ e elucidac¸ao˜ que se proporcionaram ao longo deste trabalho. Aos meus pais excepcionais e a` minha mana preferida, por me terem aturado e suportado ao longo destes quase 23 anos e sobretudo pelo incondicional apoio durante estes 5 anos de formac¸ao˜ superior. Ao pessoal do Grupo de Arquitectura e Computac¸ao˜ (Hugo Correia, Sara Proenc¸a, Francisco Freire, Pedro Alfaiate, Bruno Ferreira, Guilherme Ferreira, Inesˆ Caetano e Carmo Cardoso), por todas as sug- estoes˜ e pelo inestimavel´ feedback em artigos e apresentac¸oes.˜ Aos amigos em Tomar (Rodrigo Carrao,˜ Hugo Matos, Andre´ Marques e Rui Santos) e em Lisboa (Diogo da Silva, Nuno Silva, Pedro Engana, Kaguedes, Clara Paiva e Odemira), por terem estado pre- sentes, duma forma ou doutra, nos essenciais momentos de lazer. A` Fundac¸ao˜ para a Cienciaˆ e Tecnologia (FCT) e ao INESC-ID pelo financiamento e acolhimento atraves´ da atribuic¸ao˜ de uma bolsa de investigac¸ao˜ no ambitoˆ dos contratos Pest-OE/EEI/LA0021/2013 e PTDC/ATP-AQI/5224/2012.
    [Show full text]
  • MNU, MNS, MNR, MNC, MNX, MNL ... Or CUI Speaker: Chris Lindner – WD Partners
    MNU, MNS, MNR, MNC, MNX, MNL ... or CUI Speaker: Chris Lindner – WD Partners GD105-2P This course guides anyone familiar the two-decade-old method of customizing AutoCAD's menus into the uncharted territory of the new CUIs. It outlines the procedures for creating, sharing and editing toolbars , menus, dashboards, shortcuts, mouse buttons, workspaces, and even touches on how to migrate legacy technologies (table, screen and image menus.. remember those?) safely and quickly. After attending this class, you will be able to: • Use previous menu knowledge to accelerate the CUI learning curve • Create CUI files from existing MNU/MNS files • Set up Enterprise and Main CUI files • Work with workspaces and dashboards About the Speaker: Chris is a veteran AutoCAD user of over 20 years. He has been a CAD drafter, CAD manager, trainer, and consultant in a variety of industries. He is currently the Director of CAD technology for WD Partners, an international, multi-unit design and development firm. Chris is currently serving as the Vice President for the AUGI Board of Directors, and is Manager of AUGI's monthly HotNews publication where he also writes the popular TIPniques column. [email protected] 1 Introduction Since AutoCAD 2006, Autodesk has taken some innovative steps to modernizing how we tailor the AutoCAD environment. Rather than having to do customization with a variety of tools, practically all of AutoCAD’s user interface (UI) elements (toolbars, menus, shortcuts, etc.) can be modified and managed from within AutoCAD itself using the new Customize User Interface (CUI) editor. This course will give you the fundamentals to fully leverage the new CUI 2 Out with the MNU, in with the New The CUI is not perfect, but is a step in the right direction.
    [Show full text]
  • ATP164 First Step in Autolisp Programming Segment 2
    ATP164 First Step in AutoLISP Programming Segment 2 Date: January 15, 2007 Instructor: Mohmed Zuber Shaikh Level: Beginning Category: AutoLISP Web: www.AUGI.com Reuse of any or all material contained within this document for commercial purposes, 1 without the express written consent of AUGI, Inc. or its authorized agents is expressly prohibited. © Copyright 2004 Autodesk User Group International, Inc. All rights reserved. Introduction In first segment, we explored programming fundamentals. Every programming language is equipped with pre defined functions to make programr’s life easy. In this segment we will be dealing with String handling functions, Data type conversion functions, built-in functions for controlling the user input, list manipulation functions and other useful functions. This segment will also cover the methods and functions for providing logical flow to your program. At the end of this segment, you will be in position to write your own functions. OTHER PREDEFINED FUNCTIONS 3.1 Handling of string in AutoLISP : AutoLISP is basically a graphics mode output program tool but text also forms a part of drawings and diagrams, so handling the string is also a important part of AutoLISP programming. String is nothing but a sequence of alphanumeric characters. AutoLISP provides many string manipulation functions. We have already covered the function getstring, used for accepting string input from the user. There is one more function called read-line, which can be employed to get the user input as line. Read-line is primarily used to read the file. We shall discuss the same in detail at a later stage. 3.2 String Handling Functions : 1.
    [Show full text]
  • The Need for More Lispers in Bioinformatics Bohdan B
    Khomtchouk and Wahlestedt COMMENTARY The need for more Lispers in bioinformatics Bohdan B. Khomtchouk and Claes Wahlestedt Full list of author information is available at the end of the article Abstract We address the need for expanding the presence of the Lisp family of programming languages in bioinformatics and computational biology research. Common Lisp, the most comprehensive of the Lisp dialects, offers programmers unprecedented flexibility in treating code and data equivalently, and the ability to extend the core language into any domain-specific territory. These features of Common Lisp, commonly referred to as a \programmable programming language," give bioinformaticians and computational biologists the power to create self-modifying code and build domain-specific languages (DSLs) customized to a specific application directly atop of the core language set. DSLs not only facilitate easier research problem formulation, but also aid in the establishment of standards and best programming practices as applied to the specific research field at hand. These standards may then be shared as libraries with the bioinformatics community. Likewise, self-modifying code (i.e., code that writes its own code on the fly and executes it at run-time), grants programmers unprecedented power to build increasingly sophisticated artificial intelligence (AI) systems, which may ultimately transform machine learning and AI research in bioinformatics and computational biology. Introduction New language adoption is a chicken-and-egg problem: without a large user-base it is difficult to create and maintain large-scale, reproducible tools and libraries. But without these tools and libraries, there can never be a large user-base. Hence, a new language must have a big advantage over the existing ones and/or a powerful corporate sponsorship behind it to compete [1].
    [Show full text]
  • Comparative Programming Languages CM20253
    We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily
    [Show full text]
  • Autolisp Programming Techniques
    AutoLISP Programming Techniques AutoLISP Programming Techniques Lesson One in the CADalyst/University of Wisconsin Advanced AutoLISP Programming course covers AutoLISP program structure & development. by Anthony Hotchkiss, Ph.D, P.Eng. About this course. Advanced AutoLISP Programming is an eight-lesson independent study course, originally published in monthly installments in CADalyst magazine. Before you begin this course, it is assumed that you have reached a basic level of AutoLISP programming, equivalent to completing the preceding 'Introduction to AutoLISP Programming' course which was originally published in CADalyst, and is now available as an independent study course from the University of Wisconsin- Madison. On successfully completing an intermediate and a final mail-in project, registered students will receive certificates of completion and 5.0 CEU's (continuing education units). For further information, contact: Steve Bialek Engineering Professional Development University of Wisconsin-Madison 432 North Lake Street Madison, Wisconsin 53706 (608) 262-1735 LESSON ONE - AUTOLISP PROGRAMMING TECHNIQUES This lesson shows you how to structure your AutoLISP programs for systematic development. You will also learn some techniques for making your programs more efficient. The lesson shows you how to write your own error handler to deal with such error conditions as a cancel during program execution. The lesson ends with some homework questions to test your understanding of the text. PROGRAM STRUCTURE FOR SYSTEMATIC DEVELOPMENT A Prototype AutoLISP Program A typical program contains an input section, a processing or calculation section, and an output section. Also, because your programs interact with AutoCAD, you can include a method for setting system variables and resetting them back to their initial conditions.
    [Show full text]
  • Appendix: Graphics Software Took
    Appendix: Graphics Software Took Appendix Objectives: • Provide a comprehensive list of graphics software tools. • Categorize graphics tools according to their applications. Many tools come with multiple functions. We put a primary category name behind a tool name in the alphabetic index, and put a tool name into multiple categories in the categorized index according to its functions. A.I. Graphics Tools Listed by Categories We have no intention of rating any of the tools. Many tools in the same category are not necessarily of the same quality or at the same capacity level. For example, a software tool may be just a simple function of another powerful package, but it may be free. Low4evel Graphics Libraries 1. DirectX/DirectSD - - 248 2. GKS-3D - - - 278 3. Mesa 342 4. Microsystem 3D Graphic Tools 346 5. OpenGL 370 6. OpenGL For Java (GL4Java; Maps OpenGL and GLU APIs to Java) 281 7. PHIGS 383 8. QuickDraw3D 398 9. XGL - 497 138 Appendix: Graphics Software Toois Visualization Tools 1. 3D Grapher (Illustrates and solves mathematical equations in 2D and 3D) 160 2. 3D Studio VIZ (Architectural and industrial designs and concepts) 167 3. 3DField (Elevation data visualization) 171 4. 3DVIEWNIX (Image, volume, soft tissue display, kinematic analysis) 173 5. Amira (Medicine, biology, chemistry, physics, or engineering data) 193 6. Analyze (MRI, CT, PET, and SPECT) 197 7. AVS (Comprehensive suite of data visualization and analysis) 211 8. Blueberry (Virtual landscape and terrain from real map data) 221 9. Dice (Data organization, runtime visualization, and graphical user interface tools) 247 10. Enliten (Views, analyzes, and manipulates complex visualization scenarios) 260 11.
    [Show full text]
  • Einführung in LISP
    Einführung in LISP Simon Lutz, Frank Preiswerk “Real Programmers don't write in LISP. Only idiots' programs contain more parenthesis than actual code.” “Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.” 04/19/06 Seminar 10 Programmiersprachen - Lisp/Scheme - Simon Lutz, Frank Preiswerk 1 Zeitlicher Überblick 1958: Lisp wurde von John McCarthy am MIT speziell für nicht-numerische Probleme designed und von Steve Russell auf einer IBM 704 Maschine implementiert. Der Name bedeutet “List Processing Language”. 1968: Erster Lisp Compiler geschrieben in Lisp von Tim Hart und Mike Levin. 1968-70: Implementation von SHRDLU mittels Lisp, berühmtes AI-System. 1970er Jahre: Performanz von bestehenden Lisp-Systemen wird zum Thema, es entstehen optimierte Lisp-Maschinen. Heute wieder verschwunden. 1980er – 1990er Jahre: Bemühungen für eine Vereinheitlichung der vielen bestehenden Lisp-Dialekte: Common Lisp entsteht. 1994: ANSI veröffentlicht Common Lisp Standard. Dies zu einem Zeitpunkt, als der Weltmarkt für Lisp viel kleiner war als in den früheren Zeiten. 04/19/06 Seminar 10 Programmiersprachen - Lisp/Scheme - Simon Lutz, Frank Preiswerk 2 Lisp heute Nach einem Rückgang in den 90er Jahren ist das Interesse seit 2000 wieder gestiegen, massgeblich im Rahmen von Open Source Implementationen von Common Lisp. 2004: Peter Seibel’s “Practical Common Lisp” ist für kurze Zeit an zweiter Stelle von Amazon’s populärsten Programmierbüchern. April 2006: Tiobe Software rankt Lisp auf Platz 14 der populärsten Programmiersprachen. Neue “Lisper” beschreiben die Sprache gerne als “eye-opening experience” und behaupten, in Lisp deutlich produktiver zu sein als in anderen Sprachen.
    [Show full text]
  • 2.1 Objetivos Instrucionais
    UNIVERSIDADE FEDERAL DE UBERLANDIA^ Faculdade de Engenharia El´etrica P´os-gradua¸c~aoem Engenharia El´etrica Medida de Habilidade em Programa¸c~ao Funcional via Modelagem de Rasch com Valida¸c~aoDicot^omica REANE FRANCO GOULART Fevereiro/2012 Uberl^andia{MG REANE FRANCO GOULART Medida de Habilidade em Programa¸c~ao Funcional via Modelagem de Rasch com Valida¸c~aoDicot^omica Tese apresentada ao Programa de Doutorado em Engenharia El´etricada Universidade Federal de Uberl^andia,como requisito para obten¸c~aodo t´ıtulo de Doutora em Ci^encias. Orientador: Prof. Dr. Luciano Vieira Lima Fevereiro/2012 Uberl^andia{MG REANE FRANCO GOULART Medida de Habilidade em Programa¸c~ao Funcional via Modelagem de Rasch com Valida¸c~aoDicot^omica Orientador: Prof. Dr. Luciano Vieira Lima Uberl^andia,fevereiro/2012 Banca Examinadora Prof. Dr. Luciano Vieira Lima { Orientador Universidade Federal de Uberl^andia Prof. Dr. Luciano Silva Profa. Dra. K´atiaLopes Silva Universidade Presbiteriana Mackenzie Faculdade Pit´agorasde Uberl^andia Prof. Dr. Alexsandro Santos Soares Prof. Dr. Henrique Dantas Neder Universidade Federal de Uberl^andia Universidade Federal de Uberl^andia Dedicat´oria Ao S´avio,ao T´ulio,a Onice, ao Ant^onio,a Maria Catarina, ao Reider, a R´ubia,ao Paulo, ao Alexandre, ao Bruno e ao Gustavo, pelo amor e pela motiva¸c~ao. i Agradecimentos A Deus, que me concedeu sabedoria, paci^enciae perseveran¸capara ir at´eo final. Aos meus pais, sempre com palavras de for¸canas horas mais dif´ıceis. Ao T´ulio,que sempre me incentivou nos momentos em que pensei em de- sistir.
    [Show full text]