| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Datensatz von 3dsolids auf ein 3dsolid rediuzieren (420 mal gelesen)
|
baumhaus Mitglied student
Beiträge: 27 Registriert: 21.03.2008
|
erstellt am: 14. Mai. 2009 23:48 <-- editieren / zitieren --> Unities abgeben:
Hallöchen Hab das Problem dass ich einen Datensatz also eine Liste hab von 3dSolids, nun möcht ich aber nur eines aus diesem Datensatz rauslösen und damit weiterarbeiten. habs versucht mit dem einfachen (car ...) , (nth i ...) , (ssname i ...) Nur leider krieg ich immer eine Fehlermeldung. Jetzt weiß ich nicht ob das an der Verschlüsselung der 3Dsolids liegt, oder welchen Fehler ich eingebaut hab... Hoffe ihr könnt mir weiter helfen. Danke, Grüße Baumhaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 15. Mai. 2009 07:04 <-- editieren / zitieren --> Unities abgeben: Nur für baumhaus
|
baumhaus Mitglied student
Beiträge: 27 Registriert: 21.03.2008
|
erstellt am: 15. Mai. 2009 09:23 <-- editieren / zitieren --> Unities abgeben:
Sry hab mich wohl falsch ausgedrückt. Es handelt sich um einen Auswahlsatz Grüße Buamhaus Ps.: ich lads lieber nicht hoch... (verdammt billig gmacht, weil ich sehr im stress bin) Es geht nur darum dass ich eine menge, wirklich viele 3dsolids auf einem haufen hab aus dem ich einen architektonischen entwurf machen muss, und nun, um den überblick zu kriegen möcht ich den haufen von solids alle 20cm schneiden und die objekte mit "interfere" in einem bereich, eben die 20cm neu zeichnen lassen. Nur kann ich nicht alle solids gleichzeitig bearbeiten weil ich dann jeweils ein ganzes objekt pro schnittebene krieg und damit auch nix anfangen kann. desshalb möcht ich den befehl interfere für jede schnittebene und jedes einzelement der menge an 3solids anwenden damit ich immer einzelsolids kreig pro schnittebene. Alles kein Problem, eben nur das auslesen eines 3dsolids aus einem auswahlsaztes. hoff ich hab mein problem nun deutlich genug erklärt dass mir vielleicht jemand helfen kann. im grunde gehts nur um den auswahlsatz, das andere kreig ich alles hin. Grüße baumhaus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 15. Mai. 2009 09:48 <-- editieren / zitieren --> Unities abgeben: Nur für baumhaus
Hallo Baumhaus, na ganz so viel Info's sind das ja immer noch nicht, also auf Verdacht: Code:
(setq n 0) (repeat (sslength aws) (setq obj_liste (cons (ssname aws n)obj_liste) n (+ n 1)))
Dann hast Du alle Deine Objekte aus dem Auswahlsatz in einer Liste und sie sind dann besser handhabbar.------------------ viele Grüße Jörn http://www.bosse-engineering.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 15. Mai. 2009 09:56 <-- editieren / zitieren --> Unities abgeben: Nur für baumhaus
|
baumhaus Mitglied student
Beiträge: 27 Registriert: 21.03.2008
|
erstellt am: 15. Mai. 2009 10:12 <-- editieren / zitieren --> Unities abgeben:
ok, ich komm nicht weiter. machts mich platt für das billige lisp. aber bin nun mal im stress Code: (defun C:GBL()(setq Objekt_liste (ssget '((0 . "3Dsolid")))) (setq H (getreal "\nHöhedifferenz:")) (setq Hmax (getreal "\nmaximale Höhe:")) (setq Hmin (getreal "\nAnfangshöhe:")) (setq P1 (getpoint "\nBegrenzung") P2 (getpoint "\nBegrenzung") P3 (getpoint "\nBegrenzung") P4 (getpoint "\nBegrenzung") ) (setq n 0) (repeat (sslength Objekt_liste) (setq A (cons (ssname Objekt_liste n) A) n (+ n 1))) (setq lst_l (sslength A))
(setq H_a 0) (while (Not (> H_a Hmax)) (command "_Pline" P1 P2 P3 P4 "_c") (setq O_ex (entlast)) (command "_extrude" O_ex "" H) (setq B (entlast)) (setq H_a_p (list 0 0 H_a)) (command "move" "_last" "" "0,0,0" H_a_p) (setq H_a (+ H_a H)) (setq i 0) (foreach el A (setq l_ (list "O" i)) (command "_layer" "_m" (vl-princ-to-string l_) "") (command "-interfere" B el "" "_Y") (setq i (+ i 1)) ) ) )
es funkt auf jednen fall nicht... es hackt immer noch bei dem asuwahlsatz und der reduzierung auf ein objekt...
(nochmal zur erkläreung: ich hab eine menge von solids die ich auf einer bestimmten Höhe mit einem anderen solid einer bestimmten extrusionshöhe schneiden möcht. daraus soll über "interfere" das boolsche Element des Durschnitts erzeugt werden. Nun möcht ich aber aus der Menge der angewählten solids, die zu bearbeiten sind, jedes element einzeln bearbeiten damit ich auch nach der bearbeitung alles einzelobjekte hab und nicht ein großes objekt pro Schnittkörper.) =S ist im grunde das selbe wie vorher aber naja
Grüße baumhaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 15. Mai. 2009 10:22 <-- editieren / zitieren --> Unities abgeben: Nur für baumhaus
(defun C:GBL ( / Objekt_liste h hmax hmin p1 p2 p3 p4 n a) ;; wichtig variablen oben rein alle auch den rest noch (setq Objekt_liste (ssget '((0 . "3Dsolid")))) (setq H (getreal "\nHöhedifferenz:")) (setq Hmax (getreal "\nmaximale Höhe:")) (setq Hmin (getreal "\nAnfangshöhe:")) (setq P1 (getpoint "\nBegrenzung") P2 (getpoint "\nBegrenzung") P3 (getpoint "\nBegrenzung") P4 (getpoint "\nBegrenzung") ) (setq n 0) (repeat (sslength Objekt_liste) (setq A (cons (ssname Objekt_liste n) A) n (+ n 1) ) ) (setq lst_l (length A));;da war error, hast ne liste kein Auswahlsatz (setq H_a 0) (while (Not (> H_a Hmax)) (command "_Pline" P1 P2 P3 P4 "_c") (setq O_ex (entlast)) (command "_extrude" O_ex "" H) (setq B (entlast)) (setq H_a_p (list 0 0 H_a)) (command "move" "_last" "" "0,0,0" H_a_p) (setq H_a (+ H_a H)) (setq i 0) (foreach el A (setq l_ (list "O" i)) (command "_layer" "_m" (vl-princ-to-string l_) "") (command "-interfere" B el "" "_Y") (setq i (+ i 1)) ) ) ) ;; irgendetwas wildes Passiert da ob das so sein soll ...?! Edit: setz in vlide Haltepunkte und schau dir die Variablen mal mit an [Diese Nachricht wurde von Dorfy am 15. Mai. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
baumhaus Mitglied student
Beiträge: 27 Registriert: 21.03.2008
|
erstellt am: 15. Mai. 2009 10:38 <-- editieren / zitieren --> Unities abgeben:
=) Danke... funktioniert... Habs zwar noch ein wenig umstellen müssen aber ja... es muss wild sein... wegen der ganzen commands, weil ja die 3dsolids verschlüsselt sind. Hier eine zwischenfrage: kann man die verschlüsselung irgendwie umgehn bzw. die GC der 3dsolids sichbar machen? Auf jeden fall, vielen dank
Grüße Baumhaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 15. Mai. 2009 11:01 <-- editieren / zitieren --> Unities abgeben: Nur für baumhaus
Zitat: Original erstellt von baumhaus:
Hier eine zwischenfrage: kann man die verschlüsselung irgendwie umgehn bzw. die GC der 3dsolids sichbar machen?
Wenn du die Suche bemühst, findest du was zum Thema, wie hier. Probiere doch mal Activex... da geht imho einiges mfg heiko Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
baumhaus Mitglied student
Beiträge: 27 Registriert: 21.03.2008
|
erstellt am: 15. Mai. 2009 11:20 <-- editieren / zitieren --> Unities abgeben:
das lass ich dann wohl lieber mit den 3dsolids AcitveX, ja, werd ich mir anschaun sobald mal zeit bleibt. und VBA, kann mir da vll jemand eine Seite bzw. ein buch empfehlen? Danke und noch schönen Freitag, bis endlich wochenende wird... Grüße Baumhaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |