| |
| 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: 3D Objekte Zeichnen (1406 mal gelesen)
|
Nano Mitglied
Beiträge: 179 Registriert: 25.10.2004
|
erstellt am: 18. Mai. 2013 07:35 <-- editieren / zitieren --> Unities abgeben:
Hallo Hier Versuche ich ein 3D-Kanal zu erstellen. Das kleine Lisp geht auch, jedoch möchte ich den letzten Schnitt sparren, den Befehl "3DDREHEN". Das heisst das ich mit 3D-Polar mühe habe. Weiß jemand wie, vielen Dank.... mfg Nano Im Anhang eine DWG mit Darstellung und Erleuterung. (DEFUN c:3dKanal() (SETVAR "cmdecho" 0) (SETQ $breite (Getreal "\nKanal-Breite angeben: ") $hoehe (Getreal "\nKanal-Höhe angeben: ") $laenge (Getreal "\nKanal-Länge angeben: ") $flansch 22 $flanschbreite (+ (* $flansch 2) $breite) $flanschhoehe (+ (* $flansch 2) $hoehe) $blechdicke 5 a038p00 (GETPOINT "\nEINFÜGE-Punkt angeben: ") a038p00 (POLAR a038p00 (* (/ PI 180) 180) (/ $breite 2)) a038p01 (POLAR a038p00 (* (/ PI 180) 180) $flansch) a038p02 (POLAR a038p01 (* (/ PI 180) 270) $flansch) a038p03 (POLAR a038p00 (* (/ PI 180) 0) $blechdicke) a038p04 (POLAR a038p03 (* (/ PI 180) 90) $blechdicke) ) (COMMAND "_rectang" "_non" a038p00 "A" $breite $hoehe "_non" a038p00 /r) (SETQ L_elem1 (ENTLAST)) (SETQ L_elem (SSADD (ENTLAST))) (COMMAND "_rectang" "_non" a038p02 "A" $flanschbreite $flanschhoehe "_non" a038p02 /r) (SETQ L_elem (SSADD (ENTLAST) L_elem)) (SETQ L_elem2 (ENTLAST)) (COMMAND "_move" L_elem2 "" "0,0,0" (strcat "0,0,-" (rtos $laenge))) (COMMAND "_rectang" "_non" a038p02 "A" $flanschbreite $flanschhoehe "_non" a038p02 /r) (SETQ L_elem (SSADD (ENTLAST) L_elem)) (SETQ L_elem3 (ENTLAST)) (COMMAND "_rectang" "_non" a038p04 "A" (- $breite (* $blechdicke 2)) (- $hoehe (* $blechdicke 2)) "_non" a038p04 /r) (SETQ L_elem4 (ENTLAST)) (COMMAND "_extrude" L_elem1 "" (* -1 $laenge)) (SETQ L_elem5 (ENTLAST)) (SETQ L_elem (SSADD (ENTLAST) L_elem)) (COMMAND "_extrude" L_elem4 "" (* -1 $laenge)) (SETQ L_elem6 (ENTLAST)) (SETQ L_elem (SSADD (ENTLAST) L_elem)) (COMMAND "_extrude" L_elem2 "" "10")(SETQ L_elem7 (ENTLAST)) (SETQ L_elem (SSADD (ENTLAST) L_elem)) (COMMAND "_extrude" L_elem3 "" "-10")(SETQ L_elem8 (ENTLAST)) (SETQ L_elem (SSADD (ENTLAST) L_elem)) (COMMAND "_subtract" L_elem5 L_elem7 L_elem8 "" L_elem6 "") (COMMAND "3DDREHEN" L_elem "" "X" "_non" a038p00 "90") ) 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 Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.
|
erstellt am: 18. Mai. 2013 07:58 <-- editieren / zitieren --> Unities abgeben: Nur für Nano
Ungetestet (und ohne Kommentar zu Deinem Programmierstil): vor der Koordinateneingabe das BKS um 90° um die x-Achse drehen, (command "bks" "x" 90) und am Schluß wieder zurückdrehen (command "bks" "v"). Aber: was spricht gegen das 3ddrehen, warum willst Du das nicht? Jürgen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nano Mitglied
Beiträge: 179 Registriert: 25.10.2004
|
erstellt am: 18. Mai. 2013 08:13 <-- editieren / zitieren --> Unities abgeben:
Danke Jürgen Bevor ich die Rechtecke erstelle (command "bks" "x" 90) und am Schluss (command "bks" "VO"). ok. Habe die Commandos eingesetzt.>>> wie kann ich mit Bezogen auf der Z-Asche bei NUL (0) bleiben wenn ich der Einfügepunkt angebe. """Aber: was spricht gegen das 3ddrehen, warum willst Du das nicht?"""
1.- Es stört, dass die 3ddrehung ersichtlich ist. 2.- Möchte auch gerne auf der Z-Achse bei 0 "x,x,0" sein. Nano Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nano Mitglied
Beiträge: 179 Registriert: 25.10.2004
|
erstellt am: 18. Mai. 2013 09:52 <-- editieren / zitieren --> Unities abgeben:
Hallo Jürgen Kannst du behilflich sein, da wäre ich froh. bei diese Zeile habe ich noch ein Problem und ich weiss nicht mehr weiter. Habe noch eine Zeichnung im Anhang, so dass mann den Fehler sieht. Lisp: (DEFUN c:3dKanal() (SETVAR "cmdecho" 0) (SETQ $breite (Getreal "\nKanal-Breite angeben: ") $hoehe (Getreal "\nKanal-Höhe angeben: ") $laenge (Getreal "\nKanal-Länge angeben: ") $flansch 22 $flanschbreite (+ (* $flansch 2) $breite) $flanschhoehe (+ (* $flansch 2) $hoehe) $blechdicke 5 ) (command "bks" "x" 90) (SETQ a038p00 (GETPOINT "\nEINFÜGE-Punkt angeben: ") a038p0x (POLAR a038p00 (* (/ PI 180) 180) (/ $breite 2)) a038p01 (POLAR a038p0x (* (/ PI 180) 180) $flansch) a038p02 (POLAR a038p01 (* (/ PI 180) 270) $flansch) a038p03 (POLAR a038p0x (* (/ PI 180) 0) $blechdicke) a038p04 (POLAR a038p03 (* (/ PI 180) 90) $blechdicke) ) (COMMAND "_rectang" "_non" a038p0x "A" $breite $hoehe "_non" a038p0x /r) (SETQ L_elem1 (ENTLAST)) (SETQ L_elem (SSADD (ENTLAST))) (COMMAND "_rectang" "_non" a038p02 "A" $flanschbreite $flanschhoehe "_non" a038p02 /r) (SETQ L_elem (SSADD (ENTLAST) L_elem)) (SETQ L_elem2 (ENTLAST)) ; ; ;Hier sollte das Problem anfangen ; ; COMMAND "_move" L_elem2 "" "_non" a038p00 (strcat (rtos(car a038p00)) "," (rtos (car (cdr (car (list a038p00))))) ",-" (rtos (+ (car (cdr (cdr (car (list a038p00)))))$laenge)) ) ) ; ; ;und hier Enden ; ; (COMMAND "_rectang" "_non" a038p02 "A" $flanschbreite $flanschhoehe "_non" a038p02 /r) (SETQ L_elem (SSADD (ENTLAST) L_elem)) (SETQ L_elem3 (ENTLAST)) (COMMAND "_rectang" "_non" a038p04 "A" (- $breite (* $blechdicke 2)) (- $hoehe (* $blechdicke 2)) "_non" a038p04 /r) (SETQ L_elem4 (ENTLAST)) (COMMAND "_extrude" L_elem1 "" (* -1 $laenge)) (SETQ L_elem5 (ENTLAST)) (SETQ L_elem (SSADD (ENTLAST) L_elem)) (COMMAND "_extrude" L_elem4 "" (* -1 $laenge)) (SETQ L_elem6 (ENTLAST)) (SETQ L_elem (SSADD (ENTLAST) L_elem)) (COMMAND "_extrude" L_elem2 "" "10")(SETQ L_elem7 (ENTLAST)) (SETQ L_elem (SSADD (ENTLAST) L_elem)) (COMMAND "_extrude" L_elem3 "" "-10")(SETQ L_elem8 (ENTLAST)) (SETQ L_elem (SSADD (ENTLAST) L_elem)) (COMMAND "_subtract" L_elem5 L_elem7 L_elem8 "" L_elem6 "") (command "bks" "VO") ) Gruss Nano 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 Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.
|
erstellt am: 18. Mai. 2013 10:14 <-- editieren / zitieren --> Unities abgeben: Nur für Nano
Zitat: Original erstellt von Nano:
.. wie kann ich mit Bezogen auf der Z-Asche bei NUL (0) bleiben wenn ich der Einfügepunkt angebe.
Wenn Du die Z-Achse des vorhergehenden (nicht gedrehten) Koordinatensystems meinst, könnte man nun im gedrehten Koordinatensystem dafür sorgen, daß der y-Wert 0 ist. Also bei Koordinateneingabe über die Tastatur x-Wert,0,z-Wert. Bei Koordinateneingabe über Punktfang (OFANG) mittels Punktfilter .xz und fehlenden y-Wert 0. Jürgen Zwei ergänzende Bemerkungen: 1. Bitte mal die Sys.-Info ausfüllen 2. .dwg-Dateien können direkt hochgeladen werden. Bitte nicht unnötigerweise in .txt umbenennen. Danke
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 Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.
|
erstellt am: 18. Mai. 2013 10:55 <-- editieren / zitieren --> Unities abgeben: Nur für Nano
Zitat: Original erstellt von Nano:
Kannst du behilflich sein,
Dieser Code ist mir nun doch zu sehr verwurschtelt, um mich da hineinzufitzen. Bem. 1: Der command-Befehl akzeptiert auch Listen. Das ganze Hin und Her (rein in den String und wieder raus aus dem String) ist völlig überflüssig. Bem. 2: Denk mal drüber nach, was z.B. bei (car (list a038p00)) zurückgegeben wird. Du solltest den Code erst mal etwas verschlanken, dann sind Fehler auch leichter zu finden. Jürgen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |