Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  3D Objekte Zeichnen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   3D Objekte Zeichnen (1083 mal gelesen)
Nano
Mitglied



Sehen Sie sich das Profil von Nano an!   Senden Sie eine Private Message an Nano  Schreiben Sie einen Gästebucheintrag für Nano

Beiträge: 179
Registriert: 25.10.2004

erstellt am: 18. Mai. 2013 07:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


3D-Kanal-DWG.txt

 
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.
ehemals CAD-Trainer (ATC) und Konstrukteur (Dipl.-Ing)


Sehen Sie sich das Profil von jupa an!   Senden Sie eine Private Message an jupa  Schreiben Sie einen Gästebucheintrag für jupa

Beiträge: 5837
Registriert: 16.09.2004

WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.

erstellt am: 18. Mai. 2013 07:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Nano 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von Nano an!   Senden Sie eine Private Message an Nano  Schreiben Sie einen Gästebucheintrag für Nano

Beiträge: 179
Registriert: 25.10.2004

erstellt am: 18. Mai. 2013 08:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von Nano an!   Senden Sie eine Private Message an Nano  Schreiben Sie einen Gästebucheintrag für Nano

Beiträge: 179
Registriert: 25.10.2004

erstellt am: 18. Mai. 2013 09:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


3dKanal_Problem-DWG.txt

 
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.
ehemals CAD-Trainer (ATC) und Konstrukteur (Dipl.-Ing)


Sehen Sie sich das Profil von jupa an!   Senden Sie eine Private Message an jupa  Schreiben Sie einen Gästebucheintrag für jupa

Beiträge: 5837
Registriert: 16.09.2004

WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.

erstellt am: 18. Mai. 2013 10:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Nano 10 Unities + Antwort hilfreich

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.
ehemals CAD-Trainer (ATC) und Konstrukteur (Dipl.-Ing)


Sehen Sie sich das Profil von jupa an!   Senden Sie eine Private Message an jupa  Schreiben Sie einen Gästebucheintrag für jupa

Beiträge: 5837
Registriert: 16.09.2004

WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.

erstellt am: 18. Mai. 2013 10:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Nano 10 Unities + Antwort hilfreich

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2020 CAD.de | Impressum | Datenschutz