Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Direct Modeling
  LISP: Teilebaum erfassen

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 PTC CREO
Autor Thema:  LISP: Teilebaum erfassen (1023 mal gelesen)
jürgenW
Mitglied
CAD-Admin


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

Beiträge: 73
Registriert: 28.12.2001

erstellt am: 24. Mai. 2005 08:06    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, ich möchte per LISP den Teilebaum scannen, und alle BG, UnterBG und ET erfassen, deren Namen und Sys-ID in ein File schreiben:
z.B.
welle#22311234-22354434af665-333 2433356
Ist soweit alles klar. Nur fehlt mir eine Funktion, mit der ich den Baum scannen kann:
(setf liste (sd-call-cmds (get_selection :select :all3d)))
bringt alles (Teile, Flächen etc. aber keine BG).
....:select :all_on_top auch nur Top-Teile.
...:focus_type *sd-object-seltype*  auch nicht alles.
Hat jemand einen Rat?

Gruss Jürgen

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

Klaus Lörincz
Mitglied
Consultant


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

Beiträge: 533
Registriert: 06.08.2003

OSD M = aktuell
OSD D = aktuell
OS M = aktuell
auf WIN und HP-UX

erstellt am: 24. Mai. 2005 08:27    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 jürgenW 10 Unities + Antwort hilfreich

Hallo Jürgen,

Du hast mit LISP viele Möglichkeiten:

1) eine Ebene einer BG mit sd-inq-obj-children
2) über nconc und einen rekursiven Aufruf einer Funkjtion
3) Selektion (wie vin Dir angegangen) mit einer check-function

--> It's up to your LISP knowledge

Ich würde bei dieser Aufgabe in Richtung 2 tendieren.
Dabei kannst Du beim scannen das Ergebniss schon auf
Deine Anforderungen trimmen und das noch auf eine Ebene
bezogen.

Grüßle

------------------
Klaus Lörincz
0174 3439 428
Sindelfingen
Germany

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

RainerH
Mitglied
Techn. Ang. (Konstruktion)


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

Beiträge: 736
Registriert: 22.01.2003

OSDM 14.00A
OSDD 14.00A
MM 14.00A
Windows-XP Professional
---
HP xw4100
3.0 GHz
2GB RAM
Quadro4 980 XGL

erstellt am: 24. Mai. 2005 08:28    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 jürgenW 10 Unities + Antwort hilfreich

@juergenW

muesste auf die Schnelle als DISPLAY-Ausgabe so klappen:


(in-package :examples)
(use-package :oli)

(sd-defdialog 'teilebaum-ausgabe
:dialog-control :sequential
:ok-action
'(progn
(setf teilebaumliste nil)
(display "Teilebaumliste:")
(setf teilebaumliste
(sd-call-cmds
(get_selection
:focus_type (list *sd-assembly-seltype* *sd-part-seltype* )
:select :recursive :all_at_top
)
:failure (sd-display-error (format nil "~a => Beim Erstellen der Teilebaum-Liste" (sd-inq-error-obj :message)))
)
)
(dolist (einzelobjekt teilebaumliste)
(progn
(display (format nil "~a#~a" (sd-inq-obj-basename einzelobjekt) (sd-inq-obj-contents-sysid einzelobjekt)))
)
)
)
)


HTHHope this helps (Hoffe, es hilft weiter)


Gruss
RainerH.

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

Dorothea
Mitglied



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

Beiträge: 242
Registriert: 22.11.2001

erstellt am: 24. Mai. 2005 09:27    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 jürgenW 10 Unities + Antwort hilfreich

Hallo,

Generell muss man ein bisschen aufpassen, wenn man den gesamten Teilebaum bescannt.
Die Loesung mit der rekursiven Selektion ist super wenn man weiss, dass es nicht hunderte von Teilen und Baugruppen sind, die man bekommt. Diese eine Liste wuerde naemlich auf einmal vom Selektor zurueck gegeben werden. Dass das Programm da moeglicherweise "die Backen aufplustert" ist wohl nachvollziehbar.
Wenn man sich ebenenweise voran tasted (z.B. mit sd-inq-obj-children) und die Ergebisse immer mit nconc in eine Liste schreibt, dann hat man hinterher eine recht lange Liste. Das mag auch nicht so toll sein.

Vielleicht ist es in deinem Fall ja auch moeglich, immer dann die geweunschte Funktion aufzuruefen, wenn man das Objekt auch an der Hand hat. Dann braucht man keine Listen zu verwalten sondern schreibt z.B. die gewuenschte Info direkt ins File.

Aber wie gesagt, es haengt echt davon ab, wie gross dein Teilebaum ist. Wenn er klein ist, dann sammel alle Teile und BG auf und schreibe alles auf einmal ins File. Wenn der Teilebaum moeglicherweise recht gross wird, dann ueberleg dir vielleicht eine andere Strategie.

Gruss Dorothea

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

jürgenW
Mitglied
CAD-Admin


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

Beiträge: 73
Registriert: 28.12.2001

SolidWorks 2008 (SP5)
ProFile (8.1)
Windows XP (32)

erstellt am: 24. Mai. 2005 10:29    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 , Eure Ideen helfen mir sehr weiter.
Probiere das aus.

Gruss aus dem Norden.


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