| |
| 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: 3D-Strecken 2 mal Fensterauswahl (4033 mal gelesen)
|
Siegfried Rief Mitglied Lehrer, Architekt
Beiträge: 270 Registriert: 16.11.2011 ACAD 2024, imos iX2017 im Novellnetz Fachschule für Holztechnik Stuttgart
|
erstellt am: 14. Feb. 2013 12:44 <-- editieren / zitieren --> Unities abgeben:
Hallo, 3D-Strecken geht ja durch veschieben von untergeordneten Objekten. Ich verwende folgendes Macro: (command "subobjselectionmode" "0")(command "_move" "_su" "_w") Protokoll muss aus sein Bei unseren Möbelschnitten gibts oft Beschläge (Blöcke) zum mitstrecken. Damit diese mitgehen und ev auch andere nicht-Volumenkörper, kann ich das macro nicht verwenden sondern muss manuell 2 Objektwahlen vornehmen: einmal blau mit Strg-Taste und einmal blau ohne Strg. Kann ich in das macro bzw. die entsprechende lisp eine 2. Objektwahl einbauen ohne ein 2. Fenster aufziehen zu müssen? >> Das ganze sollte "schülertauglich" sein. Gruß
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Siegfried Rief Mitglied Lehrer, Architekt
Beiträge: 270 Registriert: 16.11.2011 ACAD 2024, imos iX2017 im Novellnetz Fachschule für Holztechnik Stuttgart
|
erstellt am: 14. Jan. 2014 22:33 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte diesen Beitrag/Frage von mir nochmals nach oben holen, weil mir das Thema immer wichtiger wird: Strecken von Volumenkörpern, hier mit der Besonderheit, dass Blöcke im Spiel sind, die verschoben werden müssen. Bei uns sind das vor allem Beschlagszeichnungen der Hersteller. Auflösen kann ich die auch nicht, da geht die Kiste in die Knie, die Teile sind recht detailiert modelliert. Es geht wie oben beschrieben letzlich nur um die doppelte Objektwahl mit einem Fenster: normale Objekte und Unterobjekte. Mich würde interessieren, ob so was grundsätzlich geht. Falls es was kostet, bräuchte ich eine grobe Hausnummer. Ich habe das Thema 3D-Strecken zwar schon mal auf einer whishlist gesehen und dort auch gewählt, aber irdendwie tut sich da nichts. Freue mich auf Rückmeldung. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jupa Ehrenmitglied V.I.P. h.c. Ruheständler
Beiträge: 6052 Registriert: 16.09.2004 Windows 10 64bit, ACAD Rel. 14 - ACAD 2023
|
erstellt am: 15. Jan. 2014 07:02 <-- editieren / zitieren --> Unities abgeben: Nur für Siegfried Rief
Hallo Siegfried, mein Gedanke dazu wäre, über das Macro zwei Operationen nacheinander auszuführen (Verschieben der Unterobjekte und Verschieben der Blöcke), wobei jedesmal die gleichen Eingabewerte für Auswahlfenster und Streckvektor benutzt werden. Nur um das Prinzip zu testen als LISP-3Zeiler (sehr grob and dirty): (defun c:3D-Strecken () (setq p1 (getpoint "\nErster Eckpunkt Auswahlfenster")) (setq p2 (getpoint "\nZweiter Eckpunkt Auswahlfenster")) (command "subobjselectionmode" "0")(command "_move" "_su" "_w" p1 p2 "" (setq v1 (getpoint "\nErster Streckpunkt"))(setq v2 (getpoint "\nZweiter Streckpunkt"))) (command "_move" "_w" p1 p2 "" v1 v2) ) Jürgen ------------------ Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)
[Diese Nachricht wurde von jupa am 15. Jan. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Siegfried Rief Mitglied Lehrer, Architekt
Beiträge: 270 Registriert: 16.11.2011 ACAD 2024, imos iX2017 im Novellnetz Fachschule für Holztechnik Stuttgart
|
erstellt am: 15. Jan. 2014 07:37 <-- editieren / zitieren --> Unities abgeben:
|
Siegfried Rief Mitglied Lehrer, Architekt
Beiträge: 270 Registriert: 16.11.2011 ACAD 2024, imos iX2017 im Novellnetz Fachschule für Holztechnik Stuttgart
|
erstellt am: 15. Jan. 2014 23:42 <-- editieren / zitieren --> Unities abgeben:
Hi, das funktioniert nicht schlecht! Was noch fehlt ist Ortho oder Polar beim picken von v1 und v2. Klar, das sind einzelne Punkte, bei mir ist das meist ein Vektor mit Richtung und Längeneingabe wie beim 2D-Strecken. Zur Not kann man den sich vorher zeichnen. Wenn das Rechteck, das man "aufzieht" - sind eben auch nur 2 Punkte" - bis zur Angabe des Streckvektors "stehen bleiben" würde, wäre noch so ein Wunsch. Bei "subobjselectionmode" "3" habe ich die besten Ergebnisse. Vielleicht fällt dir ja noch was ein, es geht ja um nicht mehr und nicht weniger als um einen 3D-tauglichen Strecken-Befehl, der eigenlich seit Version ... überfällig ist. Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22298 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 16. Jan. 2014 01:57 <-- editieren / zitieren --> Unities abgeben: Nur für Siegfried Rief
Das Strecken funktioniert so, dein Problem ist die Objektwahl, nicht die Streckenfunktion Du willst das die Acad Objektwahl selbst ständig bei jedem Objekt unterscheidet ob sie nun Objekte, oder Unterobjekte fangen soll. Ganz ehrlich: Ich denke das soll der Benutzer entscheiden meiner Meinung nach und so funktioniert die Objektwahl eben auch. Beim Quader soll er nur einzelne Flächen strecken, bei einem Attribut aber die ganze Blockreferenz.. Sehr geehrter Anwender, bitte entscheiden sie selbst ;D ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Siegfried Rief Mitglied Lehrer, Architekt
Beiträge: 270 Registriert: 16.11.2011 ACAD 2024, imos iX2017 im Novellnetz Fachschule für Holztechnik Stuttgart
|
erstellt am: 16. Jan. 2014 10:01 <-- editieren / zitieren --> Unities abgeben:
jein. Klar, es sind 2 Objektwahlen. Die Einstellung subobjselectionmode ist zweitrangig. Aber ich muss 2 Rechtecke aufziehen und zwar dieselben. Im Moment machen wir das so, dass wir das Strecken-Rechteck zeichnen und dieses 2 mal abgreifen(!) für das Verschieben der Unterobjekte und das Verschieben der vollständig enthaltenen Objekte.
Stell dir mal vor, das 2D Strecken würde sich nur auf Linien auswirken und die Texte, Blöcke usw. müsstest du in einer 2. Aktion hiterher schieben. Manchmal denke ich, dass wir Möbelbauer die einzigen sind die "strecken" wollen. Im 2D ist das doch der mächtigste Änderungsbefehl. Und im 3D ist das doch "der" Unterschied zu den bauteilorientierten Programmen, wo ich eben nicht mehrere Bauteile/Positionen von Bearbeitungen usw. gleichzeitig verändern kann. Beispiel: Ein Schrank wird 50 mm höher >> die Seiten verlängern sich, der obere Boden verschiebt sich, die oberen Beschläge verschieben sich, die Bohrungen in den Seiten werden im Bauteil verschoben ... Mir ist klar, dass das auch an unserer eher "orthogonalen" Welt liegt. Das frei geformte Gehäuse eines Luftfilters kann so nicht gestreckt werden. Ich kann zur Not mit dem oben beschriebenen Vorgehen leben. Aber im Unterricht komme ich in echte Erklärungsnöte, warum das so kompliziert ist. Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jupa Ehrenmitglied V.I.P. h.c. Ruheständler
Beiträge: 6052 Registriert: 16.09.2004 Windows 10 64bit, ACAD Rel. 14 - ACAD 2023
|
erstellt am: 16. Jan. 2014 11:40 <-- editieren / zitieren --> Unities abgeben: Nur für Siegfried Rief
Zitat: Original erstellt von Siegfried Rief:
Wenn das Rechteck, das man "aufzieht" ... "stehen bleiben" würde, wäre noch so ein Wunsch.
Hier werden sie geholfen - mit einer kleinen Anpassung: (defun c:3D-Strecken () (setq p1 (getpoint "\nErster Eckpunkt Auswahlfenster")) (setq p2 (getcorner p1 "\nZweiter Eckpunkt Auswahlfenster")) (command "subobjselectionmode" "0")(command "_move" "_su" "_w" p1 p2 "" (setq v1 (getpoint "\nErster Streckpunkt"))(setq v2 (getpoint "\nZweiter Streckpunkt"))) (command "_move" "_w" p1 p2 "" v1 v2) ) Zitat: "bei mir ist das meist ein Vektor mit Richtung und Längeneingabe". Natürlich kann man die Definition des Streckvektors aus dem command-Befehl rausnehmen und (so wie es sich eigentlich auch gehört) vor der Ausführung der Schieben-Befehle abarbeiten. Da kannst Du alles programmieren - mit Ortho und/oder Polar oder wie bei direkter Abstandseingabe oder über zwei explizit zu definierende Punkte oder ... was immer Du willst. Das mußt Du schon selbst wissen. Der Kern meines Lösungsvorschlages bestand darin, daß man die notwendigen Eingabeinformationen (was soll gestreckt/geschoben werden und von wo nach wohin) temporär abspeichert und in zwei getrennten Befehlsaufrufen diese Eingabeinformationen wiederholt verwendet. Entspricht ja auch genau deinem Wunsch, Aiuswahlfenster und Streckfenster nicht zwei mal definieren zu müssen. Den Rest kannst Du beliebig Deinen Vorstellungen gemäß drumrumbasteln. Jürgen ------------------ Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jupa Ehrenmitglied V.I.P. h.c. Ruheständler
Beiträge: 6052 Registriert: 16.09.2004 Windows 10 64bit, ACAD Rel. 14 - ACAD 2023
|
erstellt am: 16. Jan. 2014 11:49 <-- editieren / zitieren --> Unities abgeben: Nur für Siegfried Rief
Zitat: Original erstellt von Siegfried Rief: Aber im Unterricht komme ich in echte Erklärungsnöte, warum das so kompliziert ist.
Die Antwort ist ganz simpel: Weil AutoCAD nun mal kein praxistaugliches 3D-Modellierprogramm ist. Nicht umsonst wird es von vielen als 2,5D-Programm bezeichnet. Meine Formulierung lautet immer: AutoCAD ist ein 2D-Programm mit eingeschränkter 3D-Funktionalität. Jürgen ------------------ Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wilfried Nelkel Mitglied glaubt mir eh keiner
Beiträge: 806 Registriert: 15.03.2001 AutoCAD/ADT/ACA 2002 - 2023, Hardware: HP Z620 Workstation, 2 x Xeon E5-2690 v2@3.00GHz, 96 GB RAM, NVIDIA Quadro RTX 4000, Windows 10-64bit ..... ATC-Trainer
|
erstellt am: 16. Jan. 2014 19:49 <-- editieren / zitieren --> Unities abgeben: Nur für Siegfried Rief
|
jupa Ehrenmitglied V.I.P. h.c. Ruheständler
Beiträge: 6052 Registriert: 16.09.2004 Windows 10 64bit, ACAD Rel. 14 - ACAD 2023
|
erstellt am: 16. Jan. 2014 20:13 <-- editieren / zitieren --> Unities abgeben: Nur für Siegfried Rief
Zitat: Original erstellt von Wilfried Nelkel: Die objektwahlmethode kp (kreuzenpolygon) ist keine Option
Ich denke sein Problem war (ist?), mit nur einem Objektwahlfenster gleichzeitig sowohl Hauptobjekte (z.B. Blockreferenzen) als auch Unterobjekte (z.B. Flächen eines 3D-Solids) einem Bearbeitungsbefehl (z.B. Schieben) zu übergeben. Da dürfte auch KP nicht helfen. Jürgen ------------------ Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Siegfried Rief Mitglied Lehrer, Architekt
Beiträge: 270 Registriert: 16.11.2011 ACAD 2024, imos iX2017 im Novellnetz Fachschule für Holztechnik Stuttgart
|
erstellt am: 16. Jan. 2014 23:36 <-- editieren / zitieren --> Unities abgeben:
So ist es. Erschwerend kommt hinzu, dass die beiden Auswahlsätze quasi addiert werden müssen. Es dürfen keine 2 Verschiebeaktionen sein, da sonst ein vollständig enthaltener Volumenkörper beim ersten mal in der Summe seiner Unterobjekte und beim 2. mal als normales Objekt - also 2 mal - verschoben wird. Zur Verdeutlichung, worum es geht ein Bildchen. Die braunen Zylinder sind Dübel und Blöcke, die grauen Objekte Korpusverbinder (Herstellerdownload) und eben falls Blöcke, der Rest Volumenkörper. Die haben sämtliche Bohrungen für Dübel und Verbinder. Siegfried Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Siegfried Rief Mitglied Lehrer, Architekt
Beiträge: 270 Registriert: 16.11.2011 ACAD 2024, imos iX2017 im Novellnetz Fachschule für Holztechnik Stuttgart
|
erstellt am: 17. Jan. 2014 00:26 <-- editieren / zitieren --> Unities abgeben:
Bei folgendes Macro bin ich jetzt mal gelandet: (setvar "subobjselectionmode" 0)(command "schieben" "f" pause pause "h" (setvar "subobjselectionmode" 3) "u" "f") Es braucht zwar 2 Fenster, wählt beim ersten die vollständig enthaltenen Objekte und beim zweiten die Unterobjekte, hier Flächen (habe ich bei komplexen Objekten die besten Ergebnisse) und verschiebt beide Auswahlsätze in einer Aktion. Das Gesamthandling entspricht so fast genau dem 2D-Strecken. Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jupa Ehrenmitglied V.I.P. h.c. Ruheständler
Beiträge: 6052 Registriert: 16.09.2004 Windows 10 64bit, ACAD Rel. 14 - ACAD 2023
|
erstellt am: 17. Jan. 2014 07:03 <-- editieren / zitieren --> Unities abgeben: Nur für Siegfried Rief
Zitat: Original erstellt von Siegfried Rief:
Es braucht zwar 2 Fenster, ...
Das sieht ja gut aus. Noch eine kleine Verbesserung: (setvar "subobjselectionmode" 0)(command "schieben" "f" (setq p1 (getpoint "\nErster Eckpunkt"))(setq p2 (getcorner p1 "\nZweiter Eckpunkt")) "h" (setvar "subobjselectionmode" 3) "u" "f" p1 p2 "") und schon ist auch diese Lästigkeit behoben. Jürgen ------------------ Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jupa Ehrenmitglied V.I.P. h.c. Ruheständler
Beiträge: 6052 Registriert: 16.09.2004 Windows 10 64bit, ACAD Rel. 14 - ACAD 2023
|
erstellt am: 17. Jan. 2014 07:16 <-- editieren / zitieren --> Unities abgeben: Nur für Siegfried Rief
... und das (setvar "subobjselectionmode" 0) kann man auch noch unbeschadet weglassen. Bei der ersten Auswahl werden ja keine Unterobjekte gewählt, somit ist der Wert dieser Systemvariablen hier völlig irrelevant. Also: (command "schieben" "f" (setq p1 (getpoint "\nErster Eckpunkt"))(setq p2 (getcorner p1 "\nZweiter Eckpunkt")) "h" (setvar "subobjselectionmode" 3) "u" "f" p1 p2 "") Nachtrag: Für ganz komplizierte Sachverhalte könnte man tatsächlich noch überlegen, ob man anstelle des rechteckigen Auswahlfensters nicht doch besser ein polygonales Fenster benutzt. Das ließe sich mit einiger Fummelei gewiß auch noch hinbekommen. Jürgen ------------------ Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty) [Diese Nachricht wurde von jupa am 17. Jan. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Siegfried Rief Mitglied Lehrer, Architekt
Beiträge: 270 Registriert: 16.11.2011 ACAD 2024, imos iX2017 im Novellnetz Fachschule für Holztechnik Stuttgart
|
erstellt am: 18. Jan. 2014 18:42 <-- editieren / zitieren --> Unities abgeben:
Hi und vielen Dank für die letzte Änderung, die jetzt nur noch ein Wahlfenster benötigt. Die Auswahl über ein Rechteckfenster ist - in unserer ortogonalen Welt - soweit ok. Ich habe die Objektfänge für das Fenster noch abgeschaltet und vor dem Picken der Verschiebung wieder eingeschaltet. Die Variable subobjselectionmode stelle ich am Ende wieder auf Null damit das blaue Symbol am Cursor für Flächenauswahl verschwindet. Das Ganze klappt bisher hervorragend. Eine Stelle gibts noch - ich kann damit leben, Schüler stolpern vermutlich drüber: Die Objektwahl muss/darf nicht mehr wie gewohnt mit enter/Rechtsklick abgeschlossen werden. Siehst du noch eine Möglichkeit dies mit wenig Aufwand zu ergänzen? Also quasi ein "sinnloses" enter einbauen ... ++++++++++++++++++++++++++++++++++++++++++++ (defun c:xxx () (setq OM (getvar "OSMODE")) (setvar "OSMODE" 0) (command "schieben" "f" (setq p1 (getpoint "\nErster Eckpunkt")) (setq p2 (getcorner p1 "\nZweiter Eckpunkt")) "h" (setvar "subobjselectionmode" 3) "u" "f" p1 p2 "") (setvar "OSMODE" OM) (setvar "subobjselectionmode" 0) ) +++++++++++++++++++++++++++++++++++++++++ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jupa Ehrenmitglied V.I.P. h.c. Ruheständler
Beiträge: 6052 Registriert: 16.09.2004 Windows 10 64bit, ACAD Rel. 14 - ACAD 2023
|
erstellt am: 18. Jan. 2014 19:13 <-- editieren / zitieren --> Unities abgeben: Nur für Siegfried Rief
Zitat: Original erstellt von Siegfried Rief:
Siehst du noch eine Möglichkeit dies mit wenig Aufwand zu ergänzen? Also quasi ein "sinnloses" enter einbauen ...
Genau anders herum. Das von mir eingebaute ENTER nach der Eingabe von p1 und p2 muß weg. Das hatte ich mir auch schon überlegt, weil es mir a) beim testen selbst ständig so gegangen ist, daß sich nach dem Aufziehen des Auswahlfensters mein Ringfinger wie von selbst auf rechte Maustaste stürzte und b) weil man dann doch noch die Möglichkeit hat, im Bedarfsfall die Objektwahl induviduell zu vervollständigen. Und bei der Gelegenheit werden die Variablen auch gleich noch als lokal dekeklariert (/ OM p1 p2). Ist zwar nicht sonderlich hübsch (Axel würde sich im Grabe rumdrehen) aber es erfüllt seinen Zweck. (defun c:xxx (/ OM p1 p2) (setq OM (getvar "OSMODE")) (setvar "OSMODE" 0) (command "schieben" "f" (setq p1 (getpoint "\nErster Eckpunkt")) (setq p2 (getcorner p1 "\nZweiter Eckpunkt")) "h" (setvar "subobjselectionmode" 3) "u" "f" p1 p2) (setvar "OSMODE" OM) (setvar "subobjselectionmode" 0) ) Schönes Wochenende Jürgen
------------------ Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Siegfried Rief Mitglied Lehrer, Architekt
Beiträge: 270 Registriert: 16.11.2011 ACAD 2024, imos iX2017 im Novellnetz Fachschule für Holztechnik Stuttgart
|
erstellt am: 18. Jan. 2014 19:57 <-- editieren / zitieren --> Unities abgeben:
|