Hallo Marc Scherer!
Falls meine Fachausdrücke noch nicht absolut in Ordnung sind, liegt das vielleicht daran, daß ich Newby bin. Vieles leitet sich für mich aus C++ und Java ab. In der Firma arbeiten wir mit Nemetschek, dort ist alles schon vorprogrammiert und starr. Die Flexibilität von ACAD insbesondere durch die Möglichkeiten einer integrierten Programmiersprache sind nicht gegeben. Ferner kann keiner meiner Kollegen überhaupt eine Programmiersprache. Dies zur Erklärung. Das Programm, das ich meine ist das ACAD VLISP Lernprogramm. Anbei noch einmal die fertige Datei.
;;; Function gp: getpointInput willl get path location and size
(defun gp:getPointInput ()
(alert
"Function gp:getPointInput will get user drawing input"
)
;; For now, return T, as if the function worked correctly.
T
)
;;; Function gp:getDialogInput will get path parameters
(defun gp:getDialogInput ()
(alert
"Function gp:getDialogInput will get user choices via dialog"
)
;; for now, return T, as if the function worked correctly.
T
)
;;; Function gp.drawOutline will draw the path boundary
(defun gp:drawOutline ()
(alert
(strcat "This function will draw the outline of the Polyline"
"\nand return a polyline entity name/pointer."
)
)
;; for now, simply return a quoted symbol. Eventually, this
;; function will return an entity name or pointer.
SomeEname
)
;;; Funvtio C: GPATH is the main programm function and defines the
;;; Autocad GPATH command
(defun C:GPath ()
;; ask the user for input: First for path location and
;; direction, then for path parameters, Continue only if you have
;; valid input.
;;; Display a message to let the user know the command name.
(princ "\ nType gpath to draw a garden path.")
(princ)
(if (gp:get PointInput) ;
(if (gp:getDialogInput)
(progn
;; at this point you have valid input from the user.
;; Draw the outline, storing the resulting polyline
;; "pointer" in the variable called PolylineName.
(setq Polylinename (gp:drawOutline))
(princ "\nThe gp:drawOutline function returned <")
(princ PolylineName)
(princ ">")
(Alert " Congratulations - your programm is complete!")
)
(princ "\nFunction cancelled.")
)
(princ "\nIncomplete information to draw a boundary.")
)
(princ) ; exit quietly
)
Das Programm soll sich in der VLisp Konsole mit (C:GPATH) aufrufen lassen und die Meldung senden. Congratulations, your Programm is complete. Statt dessen meldet er TYPE GPATH to draw a Gardenpath, kann ich nachvollziehen, ist klar; dann kommt aber Fehler: no Functiondefinition: GP:GET
Ich habe schon versucht, die Blöcke umzustellen, leider ohne Erfolg. Das Bearbeitungsfenster(nicht Compiler, OK?) findet keinen Fehler. Liegt es am Programm, oder liegt es an den ACAD Einstellungen? ACAD ist irgendwann einmal auf meinen PC "geschmissen" worden, ich denke, um Druckvorlagen von ACAD besser in Allplan importieren zu können. Danach hat sich keiner mehr um das Programm gekümmert.
Mit der Frage nach einem "älteren Beitrag" wollte ich nur verhindern, daß vielleicht ein immerwieder auftretendes Problem immer wieder neu bearbeitet wird. Dann hätte vielleicht auch gereicht: guck auf Seite ... nach ..., da wirst du fündig.
Vielen Dank auch an Cadmium, die empfohlene Site hilft sehr gut in die Denkweise von LISP einzusteigen.
CU Ackermann
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP