Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  3D Volumenkörperhöhe ermitteln und

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:  3D Volumenkörperhöhe ermitteln und (979 mal gelesen)
loup
Mitglied


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

Beiträge: 4
Registriert: 19.11.2002

erstellt am: 19. Nov. 2002 17:34    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 hier ist LOUP ein neuer Lisper!!

1-Ich versuche derzeit die Höhe eines Volumenkörpers zu ermittel um danach eine geschlossene Polylinie auf diese Höhe zu extrudieren.
Aber wie kann ich diese Höhe "z" herausfiltern?
Ich muss derzeit die HÖhe noch von hand eingeben.
Mein code sieht derzeit so aus:

;;; Die Form der Polylinie wird von dem bereits bestehenden Volumenkörper abgezogen
(defun C:su1 ()
  (graphscr)
    (prompt "\nSelect closed polyline you want to subtract: ")
      (setq po1 (ssget))
  (prompt "\nSelect solide  : ")
      (setq so1 (ssget))
  (command "_extrude" po1"" pause pause"");;;extrudiert die Polylinie
(command "_subtract" so1 "" "_last" "");;;bestehender VK - neuer VK
        )
;;;kann ich den Cadbefehl _last nicht durch etwas eleganteres ersetzen?

2-Anders Thema--
Weis jemand wie man mehrere Volumenkörper gleichzeitig "strecken" kann?
Man muss alle Flächen verschieben können und vollständige Objekte die sich im Auswahlfenster befinden nur verschieben.
Ob das mit LISP wohl geht oder muss da ARX benutzt werden?

Ich bin für alle Ratschläge und Verbesserungen dankbar.

Danke im Voraus für alle Antworen.


Loup


------------------
loup

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 20. Nov. 2002 09:39    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 loup 10 Unities + Antwort hilfreich

Hallo loup,

folgende Zeilen ermitteln die Höhe in Z-Richtung. Zumindest sollte Dir das Prinzip klar sein und mit ein wenig Anpassung kannst Du die Funktion bei Dir passend einbauen.

Code:

(defun SUB (/ obj_3d objTyp aa bb minpt maxpt distz)
  (while (not (= "3DSOLID" objTyp))
    (setq obj_3d (entsel "\nKörper wählen"))
    (if obj_3d
      (setq objTyp (cdr (assoc 0 (entget (setq obj_3d(car obj_3d))))))
      )
    )
  (vla-GetBoundingBox (vlax-ename->vla-object obj_3d) 'aa 'bb)
  (setq minpt (vlax-safearray->list aa)
maxpt (vlax-safearray->list bb)
distz (- (caddr maxpt) (caddr minpt))
)
  )

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CADlon - Lisp over night

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

loup
Mitglied


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

Beiträge: 4
Registriert: 19.11.2002

erstellt am: 20. Nov. 2002 16:57    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 HOLGER,

erstmal vielen Dank für die schnelle Antwort.
Ich habe das Berechnunsprinzip verstanden aber wie baue ich den Wert in z.B. eine extudierung ein.

Ich möchte ja nicht das du alles machts aber aller Anfang ist schwer ;-)

Loup

------------------
loup

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 21. Nov. 2002 08:49    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 loup 10 Unities + Antwort hilfreich

Hallo loup,

das ganze ein wenig umstellen und dann kommt folgendes raus:

Code:

(defun C:su1 (/ po1 obj objTyp extrhoehe)
  (graphscr)
  (prompt "\nSelect closed polyline you want to subtract: ")
  (setq po1 (ssget))
  ;;;(prompt "\nSelect solide  : ")
  (while (not (= "3DSOLID" objTyp))
    (setq obj (entsel "\nKörper wählen"))
    (if obj
      (setq objTyp (cdr (assoc 0 (entget (setq obj(car obj))))))
      )
    )
  (setq extrhoehe(SUB obj))
  ;;;(setq so1 (ssget))
  (command "_extrude" po1 "" extrhoehe "" "");;;extrudiert die Polylinie
  (command "_subtract" obj "" "_last" "");;;bestehender VK - neuer VK
  )
(defun SUB (obj_3d / objTyp aa bb minpt maxpt distz)
;;;  (while (not (= "3DSOLID" objTyp))
;;;    (setq obj_3d (entsel "\nKörper wählen"))
;;;    (if obj_3d
;;;      (setq objTyp (cdr (assoc 0 (entget (setq obj_3d(car obj_3d))))))
;;;      )
;;;    )
  (vla-GetBoundingBox (vlax-ename->vla-object obj_3d) 'aa 'bb)
  (setq minpt (vlax-safearray->list aa)
        maxpt (vlax-safearray->list bb)
        distz (- (caddr maxpt) (caddr minpt))
        )
  )


Ich habe die unnötigen Zeilen mal ausdokumentiert, damit du den Überblick behältst.

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CADlon - Lisp over night

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: 21. Nov. 2002 10:46    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 loup 10 Unities + Antwort hilfreich

Hi Loup,

ich mache das oft so, dass ich z einfach mit einem hinreichend grossen Betrag annehme, wenn sichergestellt ist, dass nichts in Z-Richtung darüberliegt. Ich weiss ja nicht, was das wird, aber nehmen wir mal an, es geht um Löcher/Langlöcher ein einer Platte, also Maschinenbau, Masseinheiten mm. Dann mache ich den 'Bohrer' einfach 10000 lang und berechne gar nix. Im Gegensatz zu echten Maschinenbau arbeite ich ja mit rückstandsfreien Einwegbohrern.

Gruss, Axel

------------------
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

loup
Mitglied


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

Beiträge: 4
Registriert: 19.11.2002

erstellt am: 21. Nov. 2002 10: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

Danke Holger,

klappt wie eine Eins.

Ich werde erstmal versuchen alle Befehle in meinen Büchern und
den Hilfedateien von Autodesk nachzuschlagen.
Und gleichzeitig ein paar Varianten entwickeln.


Ich halt Dich und alle Anderen auf dem laufenden.

Gibt es auf CAD.de eine Stelle wo man seine Programme anderen zur verfügung stellt ?

Au travail maintenant

Loup

------------------
loup

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

loup
Mitglied


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

Beiträge: 4
Registriert: 19.11.2002

erstellt am: 21. Nov. 2002 15:34    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


gmc_lmc.txt

 
Halo Axel,


an deinen Lösungsweg habe ich auch schon gedacht aber dann ist
es wohl auch sinnvoll alle anderen Objekte zu sperren um eine
Bohrung durch sämtliche Objekte zu verhindern.

Ich habe eine Datei angehängt-für den Fall das Du sie noch nicht haben solltest- die alle gewünschten
-Objekte zu friert
-danach fürst du deine Arbeit aus
-und nun setzt du alle vorher augewählten Layer auf den
Ausganszustand zurück.

Vielen dank für deinen Hinweis.

Loup

------------------
loup

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