| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: Anordnung in Lisp (1159 mal gelesen)
|
Dolcetto Mitglied Konstrukteur / Softwareentwickler
Beiträge: 66 Registriert: 04.05.2004
|
erstellt am: 29. Jun. 2005 07:19 <-- editieren / zitieren --> Unities abgeben:
Allgemein: Wie kann ich autoCAD befehle in eine Lisp schrieben, mit voergegebenen werten? z.B. soll er mir einen Kreis Zeichnen, diesen dan Automatisch auswählen und ihn über eine Anordnung Polar über einen festen Punkt zu einer eingegebenen Anzahl erstellen. (command "_array").......... und wie weiter??? geht das irgendwie so? Danke für die Antworten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 29. Jun. 2005 07:30 <-- editieren / zitieren --> Unities abgeben: Nur für Dolcetto
Hallo Dolcetto, ja, so ähnlich geht das: Kreis zeichnen: (command "_circle" '(0.0 0.0 0.0) 10.0) Reihe: (command "_array" (entlast) "_R" 10 10 15 12) Wie du siehst ist in dem (command ..) exakt die gleiche Reihenfolge wie die Eingabe in der Befehlszeile. So ist es immer. Auf diese Weise kannst du eben die AutoCAD-Befehle in einem Lisp-Programm nutzen. Grüße Holger ------------------ Holger Brischke CAD on demand GmbH Autodesk User Group Central Europe Individuelle Lösungen von Heute auf Morgen. AUGCE Manager Deutschland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dolcetto Mitglied Konstrukteur / Softwareentwickler
Beiträge: 66 Registriert: 04.05.2004
|
erstellt am: 29. Jun. 2005 07:37 <-- editieren / zitieren --> Unities abgeben:
hmmm, wenn ich es z.B. so habe: (setq kreis0 (list (cons 0 "circle") (cons 8 "AM_0") '(10 0 0 0) (cons 40 10)))) Wo her weiss er welchen kreis ich meine??? also ich habe in meiner Lisp kreis0 - kreis10 will aber nur kreis3 anordnen! muss ich den befehl gleich nach (entmake kreis3) einsetzen oder wie? (command "_array" (entlast) "_R" 10 10 15 12) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 29. Jun. 2005 07:47 <-- editieren / zitieren --> Unities abgeben: Nur für Dolcetto
z.B: (setq kreis0 (list (cons 0 "circle") (cons 8 "AM_0") '(10 0 0 0) (cons 40 10))) (setq kreis3 (list (cons 0 "circle") (cons 8 "AM_0") '(10 0 10 0) (cons 40 20))) (setq kreis8 (list (cons 0 "circle") (cons 8 "AM_0") '(10 10 0 0) (cons 40 35))) ;_usw....dann Kreise erzeugen (entmake kreis0) (setq kreis0-fertig (entlast)) (entmake kreis3) (setq kreis3-fertig (entlast)) (entmake kreis8) (setq kreis8-fertig (entlast)) ; .. und dann Reihe (command "_array" kreis3-fertig "" "_R" 10 10 15 12) ------------------ - 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 |
Dolcetto Mitglied Konstrukteur / Softwareentwickler
Beiträge: 66 Registriert: 04.05.2004
|
erstellt am: 29. Jun. 2005 08:13 <-- editieren / zitieren --> Unities abgeben:
|
WolfgangGutke Mitglied Konstrukteur
Beiträge: 109 Registriert: 28.09.2004 AutoCAD 2002 AutoCAD 2006 ObjectDCL 2.02
|
erstellt am: 29. Jun. 2005 11:43 <-- editieren / zitieren --> Unities abgeben: Nur für Dolcetto
Hallo Dolcetto, mal nen kleinen Tipp, wie man ACAD-Befehl in LISP "bekommt". Gebe einfach z.B. (command "_.array") in die Befehlsanzeige und notiere dir die Befehlsanfragen. In der gleichen Reihenfolge musst du den Befehl auch in LISP abspulen. Eine (bisher mir bekannte) Ausnahme gibt es: Es ist der Befehl Ausrichten. VG Wolfgang Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dolcetto Mitglied Konstrukteur / Softwareentwickler
Beiträge: 66 Registriert: 04.05.2004
|
erstellt am: 29. Jun. 2005 11:51 <-- editieren / zitieren --> Unities abgeben:
Danke für den tip, ich dachte mir schon so etwas ähnliches, allerdings wusste ich nicht wie es eingeben. Meine Lisp ist jetzt fertig, ich will sie euch zeigen, damit ihr sie mal anschaut und sie umstellt. Also sobald ihr sie Anschaut merkt ihr sicher das ich meeeeeggggaaaa viel schreibarbeit gemacht habe! ich denke man könnte di ganze lisp verkürzen, verschachteln usw. Kann mir das mal jemand machen einfach zum verglich, würde mich interessieren. am besten mit beschreibung wie warum usw. Danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 29. Jun. 2005 14:15 <-- editieren / zitieren --> Unities abgeben: Nur für Dolcetto
|
mkl-cad Mitglied Technischer Zeichner
Beiträge: 378 Registriert: 23.07.2003 ACAD 2002 Express Tools 1-9 Architektural Desktop Windows XP Server Windows 2003 3 GHz Rechner 1 GB RAM 80 GB Festplatte ATI FireGL V3100 2 17" Flachbildschirme
|
erstellt am: 29. Jun. 2005 14:27 <-- editieren / zitieren --> Unities abgeben: Nur für Dolcetto
Da war doch noch jemand schneller. Ich würde noch eine Überprüfung der Werte vornehmen. Innendurchmesser kleiner Aussendurchmesser ? Lochkreisdurchmesser kleiner als Aussendurchmesser und größer als Innendurchmesser? Lochkreisdurchmesser + Durchmesser der Löcher kleiner als Aussendurchmesser und größer als Innendurchmesser? viel Spaß beim weiterbasteln. Für den Anfang fand ich das Lisp schon ganz gut. ------------------ Martin Viele Grüße aus dem schönen Münsterland! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dolcetto Mitglied Konstrukteur / Softwareentwickler
Beiträge: 66 Registriert: 04.05.2004
|
erstellt am: 29. Jun. 2005 14:32 <-- editieren / zitieren --> Unities abgeben:
@Brischke Oh ja das sieht schon ein bischen professioneller aus und ich muss sagen ich verstehe schon fast bahnhof! ich werde sie allerdings bisschen genauer studieren. danke für die rasche Bearbeitung! @mkl-cad Ah ok ich verstehe was du meinst, das ist gut fals man sich vertippt oder z.B. den Lochkreis grösser eingibt als den aussendurchmesser dann bricht das programm ab oder so, richtig?!?! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mkl-cad Mitglied Technischer Zeichner
Beiträge: 378 Registriert: 23.07.2003 ACAD 2002 Express Tools 1-9 Architektural Desktop Windows XP Server Windows 2003 3 GHz Rechner 1 GB RAM 80 GB Festplatte ATI FireGL V3100 2 17" Flachbildschirme
|
erstellt am: 29. Jun. 2005 16:50 <-- editieren / zitieren --> Unities abgeben: Nur für Dolcetto
Hallo Abbrechen tut das Programm nicht, aber es entsteht entweder Müll oder die Objekte liegen auf falschen Layern. Wenn man den Innendurchmesser größer Aussendurchmesser angibt. Dann ist anschließend der Äußere Kreis auf dem Layer des Innenkreises und umgekehrt. ------------------ Martin Viele Grüße aus dem schönen Münsterland! [Diese Nachricht wurde von mkl-cad am 29. Jun. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |