| |
![](https://ww3.cad.de/php/image.php?resolution=width:20050) | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
![](https://ww3.cad.de/php/image.php?resolution=width:16196) | PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
|
Autor
|
Thema: LSP als Funktion mit Eingangswerten? (1852 mal gelesen)
|
FeR Mitglied
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für FeR](/foren/ubb/pmimages/gbu.gif) Beiträge: 150 Registriert: 27.10.2003 WinXP latest SP AutoCAD 2008+germanExpressTools SofiCAD, ProVI HP xw4400 CoreDuo 2.4GHz 2GB RAM NVIDIA Quadro NVS 285
|
erstellt am: 12. Jul. 2005 18:43 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
Klingt jetzt vielleicht dumm aber es geht folgende Aufgabenstellung: Ich starte einr Lsp -Routine und gebe in der selben Kommandozeile auch Argummente mit. Vielleicht ist es verständlicher wenn ich es in ein Beispiel packe: Ich möchte z.B o4 eingeben für offset um 4 units ohne das lästige o [Bestätigen] 4 [Bestätigen]. Mir passiert die Eingabe beim schnellen Tippen nur zu oft :-( Versteht mich einer? Ich denke es wird nicht gehen, ich würde mich gerne vom Gegenteil überraschen lassen. :-)
------------------ mfg FeR "gefundene Rechtschreibfehler dürfen behalten werden." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
![](/foren/avatars/wronzky.gif)
![Schreiben Sie einen Gästebucheintrag für wronzky](/foren/ubb/pmimages/gbu.gif) Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 12. Jul. 2005 19:01 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für FeR
|
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
![](/foren/avatars/tunnelbauer.gif)
![Schreiben Sie einen Gästebucheintrag für tunnelbauer](/foren/ubb/pmimages/gbu.gif) Beiträge: 7085 Registriert: 13.01.2004 ich hab eh keine Probleme damit...
|
erstellt am: 12. Jul. 2005 19:04 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für FeR
Hi, also mir (was jetz nichts zu bedeuten hat) fällt mit weniger schreiben eher nichts dazu ein - das wird alles länger (ausser du definierst für jeden Fall der vorkommen kann ein defun C:... Code:
(defun c:_o4 () ;;; den _ rausnehmen (command "_offset" "4") )
Nur zielführend ist das in meinen Augen eher nicht... Die andere Möglichkeit wäre mit Parameter mitschicken... dadurch wirds aber nicht kürzer oder einfacher... Code:
(defun ox (abst) (command "_offset" abst) )
Aufruf mit (ox xy) - nur bringts halt nix... ------------------ Grüsse Thomas [Diese Nachricht wurde von tunnelbauer am 12. Jul. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
![](/foren/avatars/tunnelbauer.gif)
![Schreiben Sie einen Gästebucheintrag für tunnelbauer](/foren/ubb/pmimages/gbu.gif) Beiträge: 7085 Registriert: 13.01.2004 ich hab eh keine Probleme damit...
|
erstellt am: 12. Jul. 2005 19:05 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für FeR
|
CADmium Moderator Maschinenbaukonstrukteur
![](/foren/ubb/Admin1.gif) ![](/foren/ubb/Admin2.gif) ![](/foren/ubb/Admin3.gif) ![](/foren/ubb/Admin4.gif) ![](/foren/ubb/Admin5.gif) ![](/foren/ubb/Admin1.gif) ![](/foren/ubb/Admin2.gif) ![](/foren/ubb/Admin3.gif)
![](/foren/avatars/CADmium.gif)
![Schreiben Sie einen Gästebucheintrag für CADmium](/foren/ubb/pmimages/gbu.gif) Beiträge: 13529 Registriert: 30.11.2003 .
|
erstellt am: 12. Jul. 2005 19:34 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für FeR
einer als ACAD-Kommando definierten Funktion .. also mit (defun c:FUNCNAME(/).... können keine Parameter mitgegeben werden! Es geht nur (defun FUNCNAME (VAR1 / ) ..) mit z.B: (FUNCNAME 5) aufzurufen .. da haste dann die Klammern mit bei!!! Man kann aber innerhalb der Funktion Vorgaben setzten z.B. (or (setq VAR1 (getint "\nZahl eingeben<4>:")) (setq VAR1 4) ) bei "Ab-Entern" der getint-Funktion liefert dieselbe nil und der 2.Zweig von or wird abgearbeitet...
------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
![](/foren/avatars/wronzky.gif)
![Schreiben Sie einen Gästebucheintrag für wronzky](/foren/ubb/pmimages/gbu.gif) Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 12. Jul. 2005 19:59 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für FeR
|
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
![](/foren/avatars/wronzky.gif)
![Schreiben Sie einen Gästebucheintrag für wronzky](/foren/ubb/pmimages/gbu.gif) Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 12. Jul. 2005 20:02 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für FeR
Zitat: Original erstellt von CADmium: einer als ACAD-Kommando definierten Funktion .. also mit (defun c:FUNCNAME(/).... können keine Parameter mitgegeben werden!
Doch kann man, macht nur keinen Sinn! (defun c:test (a / ) (alert a)) (c:test "Hallo!") Henning
------------------ VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
![](/foren/avatars/wronzky.gif)
![Schreiben Sie einen Gästebucheintrag für wronzky](/foren/ubb/pmimages/gbu.gif) Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 12. Jul. 2005 20:25 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für FeR
So, nun die ultimative Lösung: in die acad.lsp eintragen: Code:
(setq za 1) (while (< za 100) (eval (read (strcat "(defun c:_O" (itoa za) " () (command \"_offset\" " (itoa za) " ))"))) (setq za (1+ za)) )
(den "_" nach c: rausnehmen!) definiert die Funktionen O1 O2...O99 Grüsse, Henning PS: wie kann man eigentlich verhindern dass c: gefolgt von "O" zu c wird? der haken Smilies in diesem Beitrag deaktivieren.funktioniert irgendwie nicht. ------------------ VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure
http://www.voxelman.de [Diese Nachricht wurde von wronzky am 12. Jul. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
![](/foren/ubb/Admin1.gif) ![](/foren/ubb/Admin2.gif) ![](/foren/ubb/Admin3.gif) ![](/foren/ubb/Admin4.gif) ![](/foren/ubb/Admin5.gif) ![](/foren/ubb/Admin1.gif) ![](/foren/ubb/Admin2.gif) ![](/foren/ubb/Admin3.gif)
![](/foren/avatars/CADmium.gif)
![Schreiben Sie einen Gästebucheintrag für CADmium](/foren/ubb/pmimages/gbu.gif) Beiträge: 13529 Registriert: 30.11.2003 .
|
erstellt am: 12. Jul. 2005 20:44 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für FeR
Zitat: Original erstellt von wronzky: Doch kann man, macht nur keinen Sinn! (defun c:test (a / ) (alert a)) (c:test "Hallo!")Henning
Tja, da hab ich mich etwas unkorrekt ausgedrückt. Mir ging's um den Aufruf als ACAD-Befehl.. TEST und Enter .. das wird nicht funzen ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FeR Mitglied
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für FeR](/foren/ubb/pmimages/gbu.gif) Beiträge: 150 Registriert: 27.10.2003 WinXP latest SP AutoCAD 2008+germanExpressTools SofiCAD, ProVI HP xw4400 CoreDuo 2.4GHz 2GB RAM NVIDIA Quadro NVS 285
|
erstellt am: 13. Jul. 2005 07:58 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
Vielen Dank für die vielen Antworten. Ich arbeite überall wo es geht mit Leerzeichen als Eingabe da die Taste einfach so schöööön groß ist ![](/foren/ubb/rolleyes.gif) @CADmium Danke für den Parametertipp! @wronzky witziger Lösungsansatz! Nochmals vielen Dank!
------------------ mfg FeR "gefundene Rechtschreibfehler dürfen behalten werden." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
![](/foren/avatars/mapcar.gif)
![Schreiben Sie einen Gästebucheintrag für mapcar](/foren/ubb/pmimages/gbu.gif) Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 13. Jul. 2005 18:20 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für FeR
|
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
![](/foren/avatars/wronzky.gif)
![Schreiben Sie einen Gästebucheintrag für wronzky](/foren/ubb/pmimages/gbu.gif) Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 14. Jul. 2005 11:53 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für FeR
@mapcar das mit dem errorhandler geht doch meines erachtens nicht, da ja kein Lisp-Fehler auftaucht, wenn Autocad meldet "Unbekannter Befehl". Daher denke ich der variabelste Weg ist über den Reactor vlr-command-reactor:vlr-unknownCommand. etwa so: Code:
(defun c:init-build-command () (vl-load-com) (if (not (reactor-is-active '((:vlr-unknownCommand . build-command)) ':vlr-command-reactor)) (setq build-command-reactor (vlr-command-reactor "my-new-command" '((:vlr-unknownCommand . build-command)))) ) ) (defun reactor-is-active (funktion typ / aktive_reactors result) (setq aktive_reactors (cdar (vlr-reactors typ))) (foreach n aktive_reactors (if (equal (vlr-reactions n) funktion) (setq result t)) ) (eval result) )
(defun build-command (reaktor parameter / command_to_build car_string cdr_string) (setq command_to_build (car parameter)) (setq car_string (strcase (substr command_to_build 1 1))) (setq cdr_string (strcase (substr command_to_build 2))) (setq thisdrawing (vla-get-activedocument (vlax-get-acad-object))) (cond ((= car_string "O");offset (vla-SendCommand thisdrawing (strcat "_offset " cdr_string " ")) ) ) )
Wenn man jetzt O2 eingibt, wird der Reactor "unbekannter Befehl" ausgelöst, und an Autocad der Befehl "_offset" zurücgeschickt. Viel Konstrukt, aber es geht! Grüsse, Henning ------------------ VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
![](/foren/avatars/mapcar.gif)
![Schreiben Sie einen Gästebucheintrag für mapcar](/foren/ubb/pmimages/gbu.gif) Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 14. Jul. 2005 16:07 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für FeR
|
FeR Mitglied
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für FeR](/foren/ubb/pmimages/gbu.gif) Beiträge: 150 Registriert: 27.10.2003 WinXP latest SP AutoCAD 2008+germanExpressTools SofiCAD, ProVI HP xw4400 CoreDuo 2.4GHz 2GB RAM NVIDIA Quadro NVS 285
|
erstellt am: 14. Jul. 2005 16:25 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
|
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
![](/foren/avatars/wronzky.gif)
![Schreiben Sie einen Gästebucheintrag für wronzky](/foren/ubb/pmimages/gbu.gif) Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 19. Jul. 2005 11:29 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für FeR
Nach dem Lob des Meisters war ich etwas beflügelt, und hab' in einer freien Minute ![](/foren/ubb/zwinker.gif) noch versucht weitere Befehle, die es nicht gibt mit dem Reactor abzufangen. Wie z.B. S[zahl] für _scale, M[zahl] für _move (in X-Richtung) und N[zahl] für _move (in Y-Richtung). Ich denke, mit dem code kann jetzt jeder weiterbasteln, bis es gar keinen unbekannten Befehl mehr gibt. Code: (defun c:init-build-command () (vl-load-com) (if (not (reactor-is-active '((:vlr-unknownCommand . build-command)) ':vlr-command-reactor)) (setq build-command-reactor (vlr-command-reactor "my-new-command" '((:vlr-unknownCommand . build-command)))) ) ) (defun reactor-is-active (funktion typ / aktive_reactors result) (setq aktive_reactors (cdar (vlr-reactors typ))) (foreach n aktive_reactors (if (equal (vlr-reactions n) funktion) (setq result t)) ) (eval result) )
(defun build-command (reaktor parameter / command_to_build car_string cdr_string ss p1 sslen zaehler thisdrawing) (setq command_to_build (car parameter)) (setq car_string (strcase (substr command_to_build 1 1))) (setq cdr_string (strcase (substr command_to_build 2))) (setq thisdrawing (vla-get-activedocument (vlax-get-acad-object))) (cond ((= car_string "O");offset (vla-SendCommand thisdrawing (strcat "_offset " cdr_string " ")) ) ((= car_string "M");move (x-direction) (vla-selectOnScreen (setq ss (vla-add (vla-get-selectionsets thisdrawing) (strcat "sstemp" (itoa (vla-get-count (vla-get-selectionsets thisdrawing))))))) (setq sslen (vla-get-count ss)) (setq zaehler 0) (vla-StartUndoMark thisdrawing) (while (< zaehler sslen) (vla-move (vla-item ss zaehler) (vlax-3d-point '(0 0 0)) (vlax-3d-point (list (atof cdr_string) 0 0))) (setq zaehler (1+ zaehler)) ) (setq ss (vla-delete ss)) (vla-endUndoMark thisdrawing) ) ((= car_string "N");move (y-direction) (vla-selectOnScreen (setq ss (vla-add (vla-get-selectionsets thisdrawing) (strcat "sstemp" (itoa (vla-get-count (vla-get-selectionsets thisdrawing))))))) (setq sslen (vla-get-count ss)) (setq zaehler 0) (vla-StartUndoMark thisdrawing) (while (< zaehler sslen) (vla-move (vla-item ss zaehler) (vlax-3d-point '(0 0 0)) (vlax-3d-point (list 0 (atof cdr_string) 0))) (setq zaehler (1+ zaehler)) ) (setq ss (vla-delete ss)) (vla-endUndoMark thisdrawing) ) ((= car_string "S");scale (vla-selectOnScreen (setq ss (vla-add (vla-get-selectionsets thisdrawing) (strcat "sstemp" (itoa (vla-get-count (vla-get-selectionsets thisdrawing))))))) (setq sslen (vla-get-count ss)) (if (> sslen 0) (setq p1 (vlax-3d-point (getpoint "Basispunkt angeben:\n")))) (setq zaehler 0) (vla-StartUndoMark thisdrawing) (while (< zaehler sslen) (vla-scaleentity (vla-item ss zaehler) p1 (atof cdr_string)) (setq zaehler (1+ zaehler)) ) (setq ss (vla-delete ss)) (vla-endUndoMark thisdrawing) ) ) )
Grüsse, Henning ------------------ VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |