Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Querschnitte-Skript von Axel

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Querschnitte-Skript von Axel (688 mal gelesen)
AB
Mitglied



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

Beiträge: 255
Registriert: 24.05.2002

Mechanical Desktop 6
AutoCAD 2002

erstellt am: 04. Nov. 2002 09:02    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


best.Querschnitte.gif

 
Guten Morgen liebes Forum,

ich habe folgendes Problem:
Axel hat mir netterweise vor einiger Zeit ein Skript geschrieben, mit dem ich automatisch Querschnitte, mit einem freiwählbaren Abstand, durch einen Volumenkörper legen kann. Nun muss dieses Skript allerdings ein wenig umgeschreiben werden, aber ich bekomme es alleine nicht hin. (Ich weiß aber auch noch nicht mal ob das geht).
Die Querschnitte, sollen wie auf dem Bild gezeigt, nur durch den 3D-Bereich gehen.

Das dazugehörige Skript lautet wie folgt:
;....................................................................................................................
(defun get-bbox(ent / pmin pmax)
(setvar "CLAYER" "breitester_Querschnitt") ; Layer auswählen
(setq pmin(vlax-3d-point'(0 0 0)))
(setq pmax(vlax-3d-point'(0 0 0)))
(vlax-invoke-method
(vlax-ename->vla-object ent)
'getBoundingBox 'pmin 'pmax
)
(list
(vlax-safearray->list pmin)
(vlax-safearray->list pmax)
)
)

(defun newbies(lastent / retlist)
(while(setq lastent(entnext lastent))
(setq retlist(cons lastent retlist))
)
)

(defun streifen(ent plane ofs steps / ents lastent)
(repeat (1+ steps)
(setq lastent(entlast))
(apply'vlax-invoke-method
(append
(list(vlax-ename->vla-object ent))
(list 'SectionSolid)
(mapcar'vlax-3d-point plane)
)
)
(command"_explode"(entlast)) ; gibt' da eigentlich kein vlax-put-them-into-jail???
(setq ents(append ents(newbies lastent)))
(setq plane
(mapcar'(lambda(p)(mapcar'+ p ofs))plane)
)
)
ents
)

(defun Querschnitte(ent d / dimx dimz bb)
(setq bb(get-bbox ent))
(setq dimx(abs(-(caar bb)(caadr bb))))
(setq dimz(abs(-(caddar bb)(caddr(cadr bb)))))
(append
(streifen ent'((0 0 0)(0 1 0)(0 0 1))(list d 0 0)(fix(/ dimx d)))  ;y/z-Ebene
)
)

;..................................
(defun ss-foreach(ss expr / i)
                              (if ss
                                (repeat(setq i(sslength ss))
                                  ((eval expr)(ssname ss(setq i(1- i))))
                                )
                              )
                            )

(defun line-in-xy-plane?(line / ) ; löscht alle Linien in x/y-Ebene
                              (and
                                (equal 0 (caddr(cdr(assoc 10(entget line))))*epsilon*) ; die einen Z-Wert von 0 haben
                                (equal 0 (caddr(cdr(assoc 11(entget line))))*epsilon*) ; (caddr = Zugriff auf z-Wert)
                              )
                            )
(setq *epsilon* 1e-8)

Viele Grüße
Andrea

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 05. Nov. 2002 13: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 AB 10 Unities + Antwort hilfreich

Hi Andrea,

was meinst du denn mit »NUR« durch den 3D-Bereich? Gibt's da eine Obermenge, die ich übersehen habe;-)

Gruss, Axel (der Vierdimensionale, vom Gewicht her betrachtet...)

------------------
http://www.tutorial.autolisp.info

http://www.advanced.autolisp.info


http://www.activex.autolisp.info

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

AB
Mitglied



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

Beiträge: 255
Registriert: 24.05.2002

Mechanical Desktop 6
AutoCAD 2002

erstellt am: 06. Nov. 2002 13:33    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

Hallo Axel,

mit "nur durch den 3D-Bereich" habe ich mich wohl ein wenig falsch ausgedrückt.
Auf einer Platte liegt irgendeine Geometrie bspw. ein Rechteck, wie in diesem Fall. Die Querschnitte sollen nur durch diese aufgesetzte Geometrie gehen und nicht auch noch durch die Platte. Dabei ist allerdings noch zu beachten, dass die Querschnitte aber bis zum Boden durch gehen sollen, wie auf dem Bild gezeigt.

Ich hoffe Du kannst mit dieser, zugegebenermaßen seltsamen Erklärung etwas anfangen.

Viele Grüße
Andrea

[Diese Nachricht wurde von AB am 06. November 2002 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Rausch
Mitglied



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

Beiträge: 1199
Registriert: 26.03.2001

Intel P4 2,6 GHz
512 MB RAM
NVIDIA GeForce FX 5200
.
WinXP prof.
Autodesk Map 2004 SP 1
WS-Landcad 2004
.
Tetris

erstellt am: 06. Nov. 2002 13:53    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 AB 10 Unities + Antwort hilfreich

Hallo,
der Axel wird es schon verstehen, aber ob AutoCAD versteht, wo die "Platte" aufhört und die "Geometrie" anfängt...
Wäre es aber nicht einfacher, nur das für die Querschnitte gewünschte in der Zeichnung zu haben und das andere über eine XRef zuzuordnen ?

------------------
gruß
thomas

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)2023 CAD.de | Impressum | Datenschutz