| | | 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: spiegeln & layerwechsel in einem ? (1229 mal gelesen)
|
alter sack Mitglied
Beiträge: 2 Registriert: 29.04.2009 Autocad 2009
|
erstellt am: 29. Apr. 2009 17:34 <-- editieren / zitieren --> Unities abgeben:
Zuerstmal Hallo an alle, ich bin seit heute neu hier. Ich habe mich angemeldet, nachdem ich zu o.a. Thema im Index nichts gefunden habe. Hoffentlich könnt ihr mir Helfen... Ich suche ein "einfaches" Lisp, mit dem ich den Befehl _mirror (also Spiegeln) und danach den Wechsel zu einem vorbestimmten Layer vornehmen kann. Evtl. zuerst die Auswahl der/des Objekte/s, dann den Spiegelbefehl mit Achswahl und nach dessen Ausführung dann den "autom." Layerwechsel. Ich möchte anfügen, das ich bereits angefangen habe mich in diese Materie einzuarbeiten, es aber noch etwas zu schwer für mich ist, dieses Lisp selbst zu schreiben. Ich hoffe dieser Weg ins Forum war der richtige für so ein Thema und bedanke mich schonmal im vorraus für eure Unterstützung. LG alter sack
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 29. Apr. 2009 17:58 <-- editieren / zitieren --> Unities abgeben: Nur für alter sack
Also von deiner Fragestellung her ein simple Antwort, jedoch befürchte ich Pessimist das du dein Vorhaben nicht korrekt beschrieben hast => hmm, also wenn es Lisp sein "muß" : Ansonsten kann man das auch mit einem einfachen Menü-/Buttonmakro machen ?! Einfachste Lösung in Lisp - aber die Befehlszeile dabei nicht wie gewohnt aussehen: zudem hast du nicht gesagt was mit der Option "Quellobjekte-löschen" geschehen soll, daher mein 3.Mal Pause im Command (if (setq AWS (ssget)) (progn (command "_.MIRROR" AWS "" PAUSE PAUSE PAUSE) (command "_.-LAYER" "_make" "AndererLayer" "") ) ) Möchte man es auch noch so haben wie gewohnt ist, ist es (für mich) Code-technisch ein deutlicher Mehraufwand. Per Makro wäre es eine Kleinigkeit: ^C^C_.SELECT;\_.MIRROR;_P;;\\\_.-LAYER;_make;MeinandererLayer;; Aber nun mal wieder zu dir: Hast du dir was SO vorgestellt ? Solltest du das mit dem "Layerwechsel" anders gemeint haben, so wird es nochmal deutlich aufwändiger. ------------------ die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
alter sack Mitglied
Beiträge: 2 Registriert: 29.04.2009 Autocad 2009
|
erstellt am: 29. Apr. 2009 18:42 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für diese schnelle Antwort ! das Quellobjekt beim Spiegeln zu löschen oder nicht, wie gewohnt auf Option lassen (also j/n), dachte ich. "Möchte man es auch noch so haben wie gewohnt ist, ist es (für mich) Code-technisch ein deutlicher Mehraufwand." Was meinst du damit ? Was ist denn dann noch zu Ergänzen, ausser dem evtl. Options-Einbringen hierbei ?? Den Layerwechsel hatte ich mir so vorgestellt, das eben der neue, vorab erstellte Layer mit allen seinen Optionen (Farbe, Linienstärke,...etc.) dann übernommen wird. Ähnlich einer normalen Layerzuweisung. So hatte ich mir das vorgestellt... p.s.: Ich gehe wohl falsch in der Annahme, das zum Ende des Befehls ein NIL muss ? Aber Du hast mir jetzt schon sehr geholfen, DANKE !
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 29. Apr. 2009 21:22 <-- editieren / zitieren --> Unities abgeben: Nur für alter sack
Wegen der Option: Gut, so habe ich es ja umgesetzt. "Was meinst du damit ?" Das war darauf bezogen das die gezeigte Variante in der Befehlszeile eine völlig andere Ausgabe bringt als der Weg "per Hand" - noch nicht bemerkt ? "..dann übernommen wird. Ähnlich einer normalen Layerzuweisung.So hatte ich mir das vorgestellt." Genau davon (Layerzuweisung / Objekte ändern) hast du im Posting aber nichts gesagt ! Und genau das meinte ich mit dem deutlichen Mehraufwand (deutlich, relativ zum bisherigen Lösungsstand) und auch mit dem "Solltest du das mit dem "Layerwechsel" anders gemeint haben, so wird es nochmal deutlich aufwändiger." Ich würde dafür wohl entweder in die Trick-Kiste greifen.. = Auswahlsatz "Alle" merken - gewünschten Objekte spiegeln - aus neuem Auswahlsatz "Alle" die Objekte des alten aws"alle" entfernen - die verbleibenden Objekte sind die neuen - diese ändern oder das letzte Element der Zeichnung merken - die gewüschten Objekte spiegeln - dann alle Elemente nach dem vorherigen "letzten Element" ermitteln und diesen dann den anderen Layer zuweisen. Layer eines Objektes ändern: ENTMOD SUBST ASSOC ENTGET Gruppentcode-8 oder (command "_.change" "Ich möchte anfügen, das ich bereits angefangen habe mich in diese Materie einzuarbeiten, " Wie? "Das Kochbuch" vorliegen, oder Mapcar-online Tutorial angefangen zu lesen ? Die Rückgabe "nil" ist zwar nicht immer gut, aber ganz normal - in diesem Fall. ------------------ die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
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: 29. Apr. 2009 21:38 <-- editieren / zitieren --> Unities abgeben: Nur für alter sack
Hallo, also ganz so kompliziert ist es nicht, man muss nur ein bischen tricksen: Code: (defun c:lay-mirr ( / aws p1 p2 dd ant) (command "_.mirror" (setq aws (ssget)) "" (setq p1 (getpoint)) (setq p2 (getpoint p1)) (setq dd (initget "Ja Nein") ant (getkword) dd "_yes")) (if (OR (not ant) (= ant "Nein")) (command "_.mirror" aws "" p1 p2 "_no")) (command "_change" aws "" "_properties" "_layer" (getvar "clayer") "") )
Grüsse, Henning------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|