| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: copy, rotate ,move (1275 mal gelesen)
|
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 03. Feb. 2005 10:02 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich habe ein kleines Problem es geht um drei Objekte, die will ich gleichzeitig kopieren, drehen und verschieben. Kann mir jemand sagen was ich falsch gemacht habe?
(command "kreis" numpower "9.0" ) (setq OBJ1 (entlast)) (setq ss (ssadd)) (command "_text" einf_t1 "8.0" "-30.0" 1) (setq OBJ2 (entlast)) (setq ss (ssadd)) (command "_arc" cncbog2 "e" cncbog1 "r" 48.30) (setq OBJ3 (entlast)) (setq ss (ssadd)) (command "_pline" pt6 pt7 pt7 ptpower pts "_a" "_r" 48.3 pt6 "") (setq OBJ4 (entlast)) (setq ss (ssadd)) (command "_.copy" OBJ1 OBJ2 OBJ3 OBJ4 "" (cdr (assoc 10 (entget OBJ1))) (cdr(assoc 10( entget OBJ2))) (cdr(assoc 10 (entget OBJ3))) (cdr(assoc 10 (entget OBJ4))) pause) (command "_.rotate" OBJ1 OBJ2 OBJ3 OBJ4 "" ptm 15.0 ) (command "_.move" OBJ1 OBJ2 OBJ3 OBJ4 "" (cdr (assoc 10 (entget OBJ1))) (cdr(assoc 10( entget OBJ2))) (cdr(assoc 10 (entget OBJ3))) (cdr(assoc 10 (entget OBJ4))) pause ) mit einem Element und (Entlast) funktioniert problemlos
(command "_pline" pr1 prpower prpower pt15 pt14 "_a" "_r" 48.3 pr1 "") (command "_.copy" (ENTLAST) "" (cdr(assoc 10 (entget (ENTLAST)))) pause "_rotate" (ENTLAST) "" ptm 75.0 "_.move" (ENTLAST) "" (cdr(assoc 10 (entget (ENTLAST)))) pause )
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3424 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 03. Feb. 2005 11:44 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
|
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 03. Feb. 2005 12:25 <-- editieren / zitieren --> Unities abgeben:
Weiterentwicklung das Problem liegt daran, das 4 Objekte habe und will ich kopieren drehen und so weiter aber wenn meht als ein Objekt auf der liste steht kann ich nicht mit ENTGET rein und ich will das er mir alle sich kopieren drehen und verschieben . (command "kreis" numpower "9.0" ) (setq obj-lst (cons (entlast) obj-lst)) (command "_text" einf_t1 "8.0" "-30.0" 1) (setq obj-lst (cons (entlast) obj-lst)) (command "_arc" cncbog2 "e" cncbog1 "r" 48.30) (setq obj-lst (cons (entlast) obj-lst)) (command "_pline" pt6 pt7 pt7 ptpower pts "_a" "_r" 48.3 pt6 "") (setq obj-lst (cons (entlast) obj-lst)) (command "_.copy" obj-lst "" (cdr(assoc 10 (entget obj-lst))) pause "_rotate" obj-lst "" ptm 75.0 "_.move" obj-lst "" (cdr(assoc 10 (entget obj-lst))) pause )
Gruß Roy
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Erwin Fortelny Mitglied Tech. Zeichner
Beiträge: 877 Registriert: 13.12.2001
|
erstellt am: 03. Feb. 2005 12:27 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
Hi, Zitat: Original erstellt von RoyCAD: Ich habe ein kleines Problem es geht um drei Objekte, die will ich gleichzeitig kopieren, drehen und verschieben. Kann mir jemand sagen was ich falsch gemacht habe?
Hmm, ohne jetz mal auf den Lisp-Code einzugehen: Warum erfindest Du das Rad nocheinmal? Es gibt ja in den Expresstool das Programm MOCORO (Schieben/Kopieren/drehen)!!!
------------------ Servus, Erwin -- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 03. Feb. 2005 12:28 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
Hi, Du erzeugst mit (setq ss (ssadd)) immer wieder einen leeren Auswahlsatz, den Du dann auch konsequenterweise nicht benutzt. Mach den leere Auswahlsatz am Anfang einmal und dann (setq ss (ssadd (entlast) ss)) nach jedem (command). Für copy, move, rotate nimmst Du dann den Auswahlsatz ss, oder gleich das Express Tool MoCoRo. Gruß CADchup
------------------ www.cadditions.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 03. Feb. 2005 13:36 <-- editieren / zitieren --> Unities abgeben:
Kopieren geht noch aber der Rest ist falsch. (setq ss (ssadd)) (command "kreis" numpower "9.0" ) (setq ss (ssadd (entlast) ss)) (command "_text" einf_t1 "8.0" "-30.0" 1) (setq ss (ssadd (entlast) ss)) (command "_arc" cncbog2 "e" cncbog1 "r" 48.30) (setq ss (ssadd (entlast) ss)) (command "_pline" pt6 pt7 pt7 ptpower pts "_a" "_r" 48.3 pt6 "") (setq ss (ssadd (entlast) ss)) (command "_.copy" ss "" (cdr(assoc 10 (entget (ENTLAST)))) pause) command "_rotate" ss "" ptm 15.0 ) (command "_.move" ss "" (cdr(assoc 10 (entget (ENTLAST)))) pause )
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 03. Feb. 2005 16:11 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
|
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 03. Feb. 2005 16:12 <-- editieren / zitieren --> Unities abgeben:
|
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 03. Feb. 2005 16:19 <-- editieren / zitieren --> Unities abgeben:
Klammer vorm command vergessen. ptm nicht definiert? ............................................ Die Klammer ist da und ptm habe ich auch definiert aber so wie gesagt das Element, das kopiert wurde ist ein neues Objekt und dem will ich noch drehen und verschieben. Gruß Roy
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 03. Feb. 2005 22:46 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
Hi, ist irgendwie nicht richtig klar. Du sprichst vom kopierten Element und meinst wahrscheinlich den Auswahlsatz. Und dann beziehst Du dich mit (entlast) auf das zuletzt erstellte Element. Vielleicht verwechselst Du hier etwas, aber: Der Auswahlsatz besteht aus den Objekten, die Du erzeugt hast. Egal, wo und wie oft Du sie kopierst, der Auswahlsatz beinhaltet immer die ursprünglichen Objekte! (entlast) bezieht sich, wie der Name schon andeutet, immer auf das zuletzt erstellte Objekt, in diesem Fall also auf eine Kopie eines Objekts aus dem Auswahlsatz. <Glaskugel rubbel> Ich denke, am einfachsten ist es, den Auswahlsatz zuerst zu schieben, dann wieder an den ursprünglichen Punkt zurück zu kopieren. So kannst Du mit dem Auswahlsatz später weiterarbeiten:
Code:
(setq pt1 (cdr(assoc 10 (entget (ENTLAST)))) pt2 (getpoint c-pt1 "\nZweiten Punkt :")); erstmal die Punkte zum Verschieben geben lassen (command "_.move" ss "" c-pt1 c-pt2); wegschieben (command "_.copy" ss "" c-pt2 c-pt1); und zurück kopieren;;So und jetzt kannst Du die "Kopie" drehen: (command "_rotate" ss "" ptm 15.0 ) ;|Für die letzte Schieberung können wir leider nicht (entlast) verwursten, denn das ist durch den Kniff mit dem Schieben ein Punkt der "ursprünglichen" Objekte. Wir holen uns also das letzte Element aus dem Auswahlsatz und nehmen dessen 10er-Punkt:|; (command "_.move" ss "" (cdr(assoc 10 (entget (ssname ss (1- (sslength ss))))) pause)
<Glaskugel blank gerubbelt> Gruß CADchup ------------------ www.cadditions.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 04. Feb. 2005 08:48 <-- editieren / zitieren --> Unities abgeben:
Danke ich habe das zusammengebastelt und es funktioniert, aber ich brauche noch ein Tipp ich will, das nur drei Objekte kopiert werden (ohne „arc“) wie soll das machen und aus der Auswahlliste löschen. Gruß Roy
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 04. Feb. 2005 08:50 <-- editieren / zitieren --> Unities abgeben:
|
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 04. Feb. 2005 10:33 <-- editieren / zitieren --> Unities abgeben:
|