Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Programmierung
  Teile ausblenden - Teile Verwalten

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 Creo
  
Club Car gewinnt mit Creo Simulation Live, eine Pressemitteilung
Autor Thema:  Teile ausblenden - Teile Verwalten (205 / mal gelesen)
MiBr
Mitglied
Konstrukteur


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

Beiträge: 576
Registriert: 30.06.2015

HP Z440 Workstation 64GB
Modeling 20.1.2.0 (x64)
Drafting 20.1.2.0 (64x) klas. UI
Modell Manager 20.1.2.0
Ansys Workbeanch 22R2 Mechanicail Pro + FKM Inside

erstellt am: 09. Sep. 2024 11: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


Bild-Teileverwalten.PNG


Teile_verwalten.lsp

 
Hallo,

als Getriebebauer haben wir schon etwas größere Baugruppe. Da dauert das Ableiten der Zeichnung in Annotation
auch schon mal nee halbe Stunde. Besonderes lang dauert es wenn z.B. Federn im Getriebe sind. Wenn diese nicht sichtbare
Teile über 'Verwalten' ausgeblendet werden geht das schon viel schneller.
Von daher habe ich versucht ein Tool zu schreiben in dem alle Teil die in den Ansichten nicht benötigt wird
ausgeblendet werden.
Hab es so Programmiert das ich zu allen Linien den Besitzer suche. Und anschließend blende ich alle nicht gefundenen
Teile aus.
Hört sich ja erstmal gut an, aber leider hänge ich jetzt an einer Stelle und die Performanz lässt bei tausenden Linie
auch zu wünschen übrig. Aber irgend was ist ja immer!

Folgendes funzt nicht:
Mittels 'SW_send_teile_id_of_geo_objekt' hole ich mir die verschiedenen id_of_geo_objekt und lösche anschließend die Duplikate.

Anschließend nehme ich die id_of_geo_objekt und füttere diese mit 'SW_send_sys_id_of_geo_objekt' und suche den Pfad der Teile
raus. Hierbei findet er aber bei Exemplaren von Baugruppen immer nur das erste Exemplar, siehe Bild.

Ich hoffe das war einigermaßen verständlich! Hat jemand ne Idee?

Gruß Michael


   

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

der_Wolfgang
Moderator
Tastenhauer


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

Beiträge: 2224
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build10.0.19045.4780
● Drafting V17~V20.7
● Modeling V17~V20.7
● Windchill 12.1.2.6
● UWGM Client 13.0.0.1

erstellt am: 09. Sep. 2024 16: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 Nur für MiBr 10 Unities + Antwort hilfreich

Ohhhh .. jeee.. 

Den Teil von Zeile 31 bis Zeile 52 würde ich komplett auf Macro Ebene machen.

a) ME10 Macro ist sauschnell
b) jeder sd-execute-annotator-function call heist:
** gucken ob es einen Annotator.exe gibt, die mit SolidDesigner spricht
** SolidDesigner schickt string an Annotator.exe
** Annotator.exe macht bissle was
** Annotator.exe muss LISP string zusammen bauen und in den 'Briefkasten' werfen
** SolidDesigner muss gucken ob was im 'Briefkasten' ist
** diese gegebenfalls als String ntutzen
** den String lesen und als LISP ausführen.

Das ist OVERHEAD  und das in einer schleife mit 100.... 1000 schleifchen, Kein Wunder das das schnarcht!

Schreib Dir EINEN Makro der das macht. Der möge dann ja untermakros aufrufen, um den code besser zu strukturieren.

Code:
DEFMACRO: Get_3D_Partnames_of_view ..  ENDMACRO  ;; bekommt die UPID der ausgewählten view.

In Zeile 50 bremst du dich zusätzlich aus. Nimm (pprint (car id_nummern_liste))  ; also nicht noch die FNC erneut aufrufen!

Wenn Du den Macro gescheit machst hast du schon dort, auf Macroebene, keine Duplicates mehr.


NOCH BESSER:
Auf Macro Ebene kannst du auch den Subtree der Teile Struktur der Ansicht abfragen, musst also gar nicht über alle GEOs drüber nudeln!!!!

Ähmm da habe ich doch letzte Woche 'nem Kollegen ne Steilvorlage geliefert. Da gibt es schon vorhanden Macros, die man nur geschickt nutzen muss.

Zeile 45..56

Code:
(setq teile_pfade (mapcar 'sd-inq-obj-pathname (sd-am-view-struct-parts-3d (sd-am-inq-view ausw_besit))))

Zeile 63..67
Gucke da mal nach common Lisp function (set-difference .... )  = Unterschied zwischen 2 Listen. Das ist bestimmt effektiver unterm ____ Strich.

--------------------------------------

ausmodellierte Federn erzeugen in der Ableitung immer SPLINCES mit Tonnen von Stützepunkten, das macht die Datenmenge gross.


Nun, es heisst ja SYS ID ..  also nur EINE für alle Exemplare.

So bissle wild runtergeschrieben heute .. 

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

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

der_Wolfgang
Moderator
Tastenhauer


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

Beiträge: 2224
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build10.0.19045.4780
● Drafting V17~V20.7
● Modeling V17~V20.7
● Windchill 12.1.2.6
● UWGM Client 13.0.0.1

erstellt am: 09. Sep. 2024 16:24    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 MiBr 10 Unities + Antwort hilfreich

Noch ein TIP zur Macro Definition INNERHALB Lisp code
Code:
(sd-execute-annotator-command :cmd
(format nil "~a~a~a~a~a~a~a~a~a~a~a~a"
"DEFINE SW_send_teile_id_of_geo_objekt"
" ...."
" ...."
"END_DEFINE"
))
Da muss man Erbsen zählen, bzw. "~a" s und Zeilen
Code:
(sd-execute-annotator-command :cmd
(format nil "~{~a~%~}" '(
"DEFINE SW_send_teile_id_of_geo_objekt"
  "...."
  "...."
  "...."
  " ..."
"END_DEFINE"
)))
Hier ändert man einfach den Macro ohne den Format Befehl immer und immer wieder anzupassen => Änderungsfreundlicher.

Man schreibt den Macro also als Liste von Strings und der Format Befehl dröselt es richtig auf.

‼️ In beiden Varianten: nicht mit zu langen macros verwenden ‼️  (sd-get-max-cmd-length) beachten! Eselsbrücke: '1000 Zeichen' kann man sich merken!

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

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

der_Wolfgang
Moderator
Tastenhauer


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

Beiträge: 2224
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build10.0.19045.4780
● Drafting V17~V20.7
● Modeling V17~V20.7
● Windchill 12.1.2.6
● UWGM Client 13.0.0.1

erstellt am: 09. Sep. 2024 17:10    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 MiBr 10 Unities + Antwort hilfreich

Michael, warum fängst in der Ansicht denn mit den Linien an???

Es gibt den dokumentierten (!!)  generischen sel-type *sd-anno-part-seltype*.

Code:
(setf alle_ME10Teile (sd-call-cmds (get_selection :focus_type *sd-anno-part-seltype* .. in Ansicht X))

Jenen dann noch mit sd-am-inq-unique-name nach würzen.

Der beinhaltet dann natürlich auch skizzen und symbole. Die musst Du rechtzeitig mit sd-am-sketch-p, sd-am-symbol-p etc... wieder aussortieren.

So, ich habe Euch für den Moment genug voll gelabert.. 😂

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

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

MiBr
Mitglied
Konstrukteur


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

Beiträge: 576
Registriert: 30.06.2015

HP Z440 Workstation 64GB
Modeling 20.1.2.0 (x64)
Drafting 20.1.2.0 (64x) klas. UI
Modell Manager 20.1.2.0
Ansys Workbeanch 22R2 Mechanicail Pro + FKM Inside

erstellt am: 12. Sep. 2024 11:43    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


Bild-Unsichtentf.png

 
Hallo,

die Funktion gibt es von Haus aus und wird meinerseits jetzt öfter genuzt.
Diese versteckt sich ein wenig im Menü Teile/AE verwalten, da sie erst nach
anklicken von 'Erweitern' mit 'Unsicht entf' erscheint, siehe Bild.

In der Modelig Hilfe steht:

Zitat:
Unsicht entf oder Unsicht hinzu (nur in Creo Elements/Direct Annotation)
Legt fest, ob nicht sichtbare Teile oder Arbeitsebenen aus der Komponentenliste
der Ansicht entfernt werden sollen. (Creo Elements/Direct Annotation durchsucht
zunächst die 2D-Geometrie in der Ansicht, um festzustellen, welche Teile oder
Arbeitsebenen in dieser Ansicht tatsächlich sichtbar sind.)
Diese Option kommt besonders bei Detailansichten oder Baugruppen mit vielen
verdeckten Teilen zum Tragen, weil sie die Zeit für die Aktualisierung von Ansichten
wesentlich verkürzen kann.

Kannte ich noch nicht und Danke Wolfgang für die ganze Mühe!

Gruß Michael

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

lix b
Mitglied
Konstrukteur, CAD-Admin


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

Beiträge: 292
Registriert: 03.10.2014

Creo Elements / Direct Modeling 20.4
Creo Elements / Direct Model Manager 20.4
<P>Notepad++
Win 11

erstellt am: 24. Sep. 2024 16:03    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 MiBr 10 Unities + Antwort hilfreich

Hallo Michael,

ich weiß ja nicht wie umfangreich eure Getriebebaugruppen sind. Aber wir aktualisieren unsere Anlagenbaugruppen mit mehreren 100tsd Teilen in 2-3 Minuten.
Ich sag zu meinen Kollegen immer, wenn eine Aktualisierung länger als 5 Minuten dauert, passt mit deinen Modellen oder den Ansichtseigenschaften etwas nicht.
Features wie die grafische Aktualisierung und das Filtern von kleinen Geometrien schaffen auch riesige Baugruppe in kurzer Zeit.

Das Erfassen von, von außen nicht sichtbaren Teilen, ist schon praktisch, aber eher im Bereich der Modellvereinfachung (Know-How-Schutz und Datenexport). Bei Zeichnungsansichten wäre mir das zu viel Aufwand.

------------------
Viele Grüße
Felix

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

MiBr
Mitglied
Konstrukteur


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

Beiträge: 576
Registriert: 30.06.2015

HP Z440 Workstation 64GB
Modeling 20.1.2.0 (x64)
Drafting 20.1.2.0 (64x) klas. UI
Modell Manager 20.1.2.0
Ansys Workbeanch 22R2 Mechanicail Pro + FKM Inside

erstellt am: 25. Sep. 2024 08:21    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 Felix,

unsere Baugruppen haben eher mehrere hundert Bauteile, also im Prinzip nicht viele.
Diese Bauteile, als Getriebebauer natürlich die Zahnräder, haben sehr viele Freiformen
bzw. Splineoberflächen. Und wenn ich dann noch Federpakete mit in Getriebe nehme dann
habe ich da tausende Flächen die aufwendig berechnet werden müssen.
Den grafischen Modus meide ich hierbei ein wenig, weil ich dadurch auch nicht den
großen Sprung sehe und ich alle Detial´s benötige.

Hab gerade mal ein Einzelteil Zeichnung von einem Kegelrad aktualisiert und dies brauch
allein schon 15sek.. Von daher braucht Modeling bei den Getriebezeichnungen so lange.

Und wenn ich dann Ansichten habe, die das Getriebe nur von außen zeigen und ich 100te
Teile nicht berechnen lassen muss und das mit wenigen Klicks. Dann bin ich schon der
Meinung das sich das für mich Lohnt, da die Aktualisierung im Schnitt nur noch halb
solang dauert.

Werde mir noch ein Tool schreiben, dass alle Ansichten wählt und verdeckte Teile
ausblendet, so dass ich nur einmal drücken muss und fertig ist´s. 

Gruß Michael

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

der_Wolfgang
Moderator
Tastenhauer


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

Beiträge: 2224
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build10.0.19045.4780
● Drafting V17~V20.7
● Modeling V17~V20.7
● Windchill 12.1.2.6
● UWGM Client 13.0.0.1

erstellt am: 25. Sep. 2024 09:48    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 MiBr 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von MiBr:
Werde mir noch ein Tool schreiben, dass alle Ansichten wählt und verdeckte Teile
ausblendet, so dass ich nur einmal drücken muss und fertig ist´s.


Über den Zaun werf:
Code:
(manage_parts :this_view
(apply 'nconc (mapcar 'oli:sd-am-sheet-struct-views
(mapcar 'oli:sd-am-inq-sheet
(oli:sd-am-inq-all-sheets))))
:expand_dialog :on
:rem_invisible_parts
)

Funktioniert aber nicht, weil :rem_invisible_parts / :add_invisible_parts bei multiple selection aus gegraut sind. Also eine Loop über die views:
Code:
(dolist (a-v (apply 'nconc (mapcar 'oli:sd-am-sheet-struct-views
(mapcar 'oli:sd-am-inq-sheet (oli:sd-am-inq-all-sheets)))))
(manage_parts :this_view a-v
:expand_dialog :on
:rem_invisible_parts
)
)

manage_parts würde für Flat Views eh keinen Sinn machen, also brauchen wir die auch nicht aufsammeln.

PS: ich schreibe sowas mit dem oli:: prefix, da ich es auf der command line via copy'n paste ausprobiere. Giesse ich das später in ein ordentliches LISP file ist "(oli::" schnell durch "(" ausgetauscht und der Code ist wieder sauber.

═══════════════════════════════════════════════════════════
Tadaaaaa! Das war Beitrag Nummer zweitausendzweihundertzweiundzwanzig
═══════════════════════════════════════════════════════════

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

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

der_Wolfgang
Moderator
Tastenhauer


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

Beiträge: 2224
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build10.0.19045.4780
● Drafting V17~V20.7
● Modeling V17~V20.7
● Windchill 12.1.2.6
● UWGM Client 13.0.0.1

erstellt am: 25. Sep. 2024 12:37    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 MiBr 10 Unities + Antwort hilfreich


cadde-92-001036_Teile_verwalten.06.lsp

 
Zitat:
Original erstellt von MiBr:
die Funktion gibt es von Haus aus

Michael und ich hatten im Hintergrund noch paar mal hin-und-her gemailt bis zu dem obigen Geistesblitz / Aha-Erlebnis.


Eine Teil Aufgabe möchte ich hier noch zur Verfügung stellen, in 3 Varianten. Es ging darum aus einer Liste von Objekt Pfadangaben die 3D Teile zu erhalten. Und das möglichst unfallfrei:

der LISP Novize:

Code:
(setq meine-teile nil)
(dolist (a-path teile-namen-liste)
  (setf a-obj (sd-pathname-to-obj a-path))
  (if a-obj
    (when (sd-inq-part-p a-obj)
      (setf meine-teile (append meine-teile (list a-obj)))
      )
    ) 
  )

(pprint "Meine TeileListe 01:")
(dolist (a-part meine-teile)
  (pprint (sd-inq-obj-pathname a-part))
  )


der Fortgeschrittene:

Code:
(setq meine-teile nil)
(dolist (a-path teile-namen-liste)
  (when (and (setq a-obj (sd-pathname-to-obj a-path))
            (sd-inq-part-p a-obj)
            )
    (push a-obj meine-teile)
    )
  )

(pprint "Meine TeileListe 02:")
(dolist (a-part meine-teile)
  (pprint (format nil "* ~S" (sd-inq-obj-pathname a-part)))
  )


der weit Fortgeschrittene:

Code:
(setq meine-teile (delete-if-not '(lambda(si)(and(sel_item-p si)(sd-inq-part-p si))) (mapcar 'sd-pathname-to-obj teile-namen-liste)))
(format T "~&Meine TeileListe 03:~%~{* ~S~%~}" (mapcar 'sd-inq-obj-pathname meine-teile))

Auf die Sortierung der Listen wurde kein Wert gelegt (das würde vom Context abhängen, ob man es braucht oder nicht)

In beigehängtem LISP file könnt ihr oben mit den Pfadangaben rumspielen und dann die Datei einfach reinladen. Übernehmt die Variante, die Euch am besten gefällt und die ihr versteht.

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

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