| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Koordinaten versetzen (1041 mal gelesen)
|
Metallbau Mitglied Metallbauplaner
Beiträge: 41 Registriert: 13.01.2005
|
erstellt am: 13. Feb. 2005 17:55 <-- editieren / zitieren --> Unities abgeben:
|
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11
|
erstellt am: 13. Feb. 2005 18:08 <-- editieren / zitieren --> Unities abgeben: Nur für Metallbau
(SETQ Variable 12.345 ; Irgendeine Variable pkt (GETPOINT "Pkt?") ; Punkt, Liste aus drei Punkten pkt (LIST (+ (NTH 0 pkt) Variable)(NTH 1 pkt)(NTH 2 pkt)) ) ------------------ Mit freundlichem Gruß Udo Hübner ---------- Der versteckte Fehler bleibt nie unentdeckt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Metallbau Mitglied Metallbauplaner
Beiträge: 41 Registriert: 13.01.2005
|
erstellt am: 13. Feb. 2005 18:21 <-- editieren / zitieren --> Unities abgeben:
Kann mir jemand da weiter helfen..., es funktioniert nicht richtig (defun c:Isolation () (setq pkta nil pktb nil pktc nil l nil h nil b nil h nil a nil w nil) (setq pkta (getpoint "\nlinke untere Ecke anwählen")) (princ "\n\n\n") (setq pktb (getpoint "\nrechte untere Ecke anwählen")) (princ "\n\n\n") (setq pktc (getpoint "\nlinke obere Ecke anwählen")) (princ "\n\n\n") (setq l (-(car pktb)(car pkta))) (setq l (abs l)) ;Länge ermitteln (setq h (-(cadr pktc)(cadr pkta))) (setq h (abs h)) ;Höhe ermitteln und Einfüge Faktor y-Achse (setq a (/ h 2)) ;Seitenverhältnis 1:2 Breite zu Höhe (setq w (/ l a)) (setq w (fix w)) ;Anzahl Spalten für minsert (setq b (+ a(/ (- l (* a w))w))) ;Einfüge Faktor x-Achse und Spaltabstand für minsert (command "._-insert" "isolation" pkta b h 0)) (repeat w (setq pktaxy (LIST (+ (NTH 0 pkta) a)(NTH 1 pkta)(NTH 2 pkta))) (command "._-insert" "isolation" pktaxy b h 0))) )
------------------ Danke... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11
|
erstellt am: 13. Feb. 2005 18:41 <-- editieren / zitieren --> Unities abgeben: Nur für Metallbau
Tja, es funktioniert nicht, weil zu viele schließende Klammern in der Zeile von COMMAND stehen. benutze im VL-EDITOR einfach mal STRG+[ und STRG+] um zu den zugehörigen öffnenden und schließenden Klammern zu springen. ------------------ Mit freundlichem Gruß Udo Hübner ---------- Der versteckte Fehler bleibt nie unentdeckt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 13. Feb. 2005 18:47 <-- editieren / zitieren --> Unities abgeben: Nur für Metallbau
für solche Listenoperationen (und ein Punkt ist eine Liste mit 3 Zahlen!) gibt es die Funktion mapcar! für dich dann (setq pktaxy (mapcar '+ PKTA (list X-VERSATZ Y-VERSATZ Z-VERSATZ))) also z.B: (setq pktaxy (mapcar '+ PKTA (list 20 0 0))) und noch was: teste mal an der Befehlszeile (/ 5 2) (/ 5 2.0) und dann guck dir mal (setq a (/ h 2)) in deinem Code an.... .. und Zitat:"Kann mir jemand da weiter helfen..., es funktioniert nicht richtig" .. was soll denn wie funktionieren? Ich kann's mir zwar denken, da ich auch deinen anderen Thread gelesen habe und weiß, was du vorhast, aber formuliert doch bitte die Probleme möglichst unter Verwendung der entsprechenden Fachtermini aus! Oder schreibt die Fehlermeldung mit hin! Debuggen brauch ich ja wohl nciht vorzuschlagen?! @CAD-Huebner : schneller für den Zugriff auf die ersten Listenelemente ist es statt (nth 0 PKT) (car PKT) zunehmen. Anlalog (cadr PKT) für (nth 1 PKT) und (caddr PKT) für (nth 2 PKT)! ------------------ - 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 |
Metallbau Mitglied Metallbauplaner
Beiträge: 41 Registriert: 13.01.2005
|
erstellt am: 13. Feb. 2005 18:53 <-- editieren / zitieren --> Unities abgeben:
|
Metallbau Mitglied Metallbauplaner
Beiträge: 41 Registriert: 13.01.2005
|
erstellt am: 13. Feb. 2005 19:03 <-- editieren / zitieren --> Unities abgeben:
Hallo Cadmium Wenn ich dein Befehl (setq pktaxy (mapcar '+ PKTA (list 20 0 0))) im Autocad eingebe und dies zwei-drei mal wiederhole bleicht der Wert von den Koordinate immer gleich, es müsste sich ja um den werd Pkta erhöhen... Woran liegt das ? ------------------ Danke... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Metallbau Mitglied Metallbauplaner
Beiträge: 41 Registriert: 13.01.2005
|
erstellt am: 13. Feb. 2005 19:05 <-- editieren / zitieren --> Unities abgeben:
|
Metallbau Mitglied Metallbauplaner
Beiträge: 41 Registriert: 13.01.2005
|
erstellt am: 13. Feb. 2005 19:18 <-- editieren / zitieren --> Unities abgeben:
Es funktioniert (defun c:Isolation () (setq pkta nil pktb nil pktc nil l nil h nil b nil a nil w nil pktaxy nil) (setq pkta (getpoint "\nlinke untere Ecke anwählen")) (princ "\n\n\n") (setq pktb (getpoint "\nrechte untere Ecke anwählen")) (princ "\n\n\n") (setq pktc (getpoint "\nlinke obere Ecke anwählen")) (princ "\n\n\n") (setq l (-(car pktb)(car pkta))) (setq l (abs l)) ;Länge ermitteln (setq h (-(cadr pktc)(cadr pkta))) (setq h (abs h)) ;Höhe ermitteln und Einfüge Faktor y-Achse (setq a (/ h 2)) ;Seitenverhältnis 1:2 Breite zu Höhe (setq w (/ l a)) (setq w (fix w)) ;Anzahl Spalten für minsert (setq b (+ a(/ (- l (* a w))w))) ;Einfüge Faktor x-Achse und Spaltabstand für minsert (setq pktaxy pkta) (setq w (- w 1)) (command "._-insert" "isolation" pkta b h 0) (repeat w (setq pktaxy (mapcar '+ pktaxy (list b 0 0))) (command "._-insert" "isolation" pktaxy b h 0) ) ) ------------------ Danke... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Metallbau Mitglied Metallbauplaner
Beiträge: 41 Registriert: 13.01.2005
|
erstellt am: 13. Feb. 2005 19:30 <-- editieren / zitieren --> Unities abgeben:
|