| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
Autor
|
Thema: Anzahl der Teilstrings im Teilenamen innerhalb einer Baugruppe zählen? (1206 mal gelesen)
|
Seele Mitglied Konstrukteur
Beiträge: 364 Registriert: 11.06.2003 Intel(R) Xeon(R) W-2245 CPU @ 3,90 GHz, 64GB RAM NVidia Quadro RTX A4000 Win10-64Bit Elements/Direct v20.5.1.0 PartLibrary, Surfacing, 3D-PDF, 3D-Access, Unigraphics-Schnittstelle
|
erstellt am: 09. Jan. 2017 21:43 <-- editieren / zitieren --> Unities abgeben:
Hallo ich stehe mal wieder vor einem Problem, ... ich möchte in einer Baugruppe zählen, wie oft ein Teilstring in den Teilenamen vorkommt. z.B. Teilstring = "Gehäuse" , Baugruppe "Testgruppe" darin enthaltene Namen: 0563-Gehäuse-05-Oben 0546-Schraube-DIN912-M6x20 0547-Gehäuse-06-Unten u.s.w. Ergebnis wäre also jetzt 2 mal, wenn es kein weiteres mal auftaucht. Wie kann ich elegant den Zahlenwert ermitteln, in wievielen Teilenamen (nicht Modelnamen) dieser Teilstring vorkommt? Ich bin schon auf die Vorschläge gespannt. Mit freundlichen Grüßen Wolfgang ------------------ alles ist möglich, nichts funktioniert und trotzdem muß es bis morgen geschafft sein. Werden wir es schaffen? Ja wir schaffen das !!! :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
Beiträge: 657 Registriert: 20.11.2006 Win7 Pro SP1 64Bit HP Z230, Core i5, 8GB RAM, nv Quadro K600 Creo Elements/Direct 19.0 M010 ModelManager 19.0 M010 clisp,VB.net,VBA,AHK,php,javascript
|
erstellt am: 10. Jan. 2017 08:45 <-- editieren / zitieren --> Unities abgeben: Nur für Seele
Nur in den Teilenamen (also keine Baugruppen) mit Code: (sd-defdialog 'pw-str-in-bgr-suche :dialog-title "Zähle Teile mit Teilstring in Bgr" :toolbox-button t :variables '( (SUCHSTRING :value-type :string :initial-value nil :title "Suchstring" :next-variable (when (not BAUGRUPPE) 'BAUGRUPPE) :prompt-text "Zu suchenden Teilstring eingeben." ) (BAUGRUPPE :value-type :assembly :modifies nil :title "Baugruppe" :prompt-text "Baugruppe wählen." :next-variable (when (not SUCHSTRING) 'SUCHSTRING) ) );end variables :local-functions '((pw-str-in-bgr-suche-go () (let ((OBJECT_LIST (sd-call-cmds (get_selection :focus_type *sd-object-seltype* :allow_wire_part :allow_face_part :select :part :in_assembly BAUGRUPPE))) (ANZAHL 0)) (if OBJECT_LIST (dolist (OBJECT OBJECT_LIST) (when (sd-inq-part-p OBJECT) (when (search SUCHSTRING (sd-inq-obj-basename OBJECT) :test #'char-equal) (incf ANZAHL))))) (display (format nil "Treffer mit Teilstring \"~a\": ~a" SUCHSTRING ANZAHL)) ))) :ok-action '(pw-str-in-bgr-suche-go) )
Quick-and-dirty (TM) ------------------ Patrick Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Seele Mitglied Konstrukteur
Beiträge: 364 Registriert: 11.06.2003
|
erstellt am: 10. Jan. 2017 10:50 <-- editieren / zitieren --> Unities abgeben:
Danke für die schnelle Lösung, .... habe es ausprobiert funktioniert soweit, aber mir fehlen noch die Suchtreffer aus den Unterbaugruppen. Momentan müssen alle Treffer in der gewählten Baugruppe vorhanden sein, ist noch ein Teil in einer darunterliegenden Baugruppe, wird es leider noch nicht mitgezählt. Kann man das noch realisieren? Gruß Wolfgang ------------------ alles ist möglich, nichts funktioniert und trotzdem muß es bis morgen geschafft sein. Werden wir es schaffen? Ja wir schaffen das !!! :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
Beiträge: 657 Registriert: 20.11.2006 Win7 Pro SP1 64Bit HP Z230, Core i5, 8GB RAM, nv Quadro K600 Creo Elements/Direct 19.0 M010 ModelManager 19.0 M010 clisp,VB.net,VBA,AHK,php,javascript
|
erstellt am: 10. Jan. 2017 15:31 <-- editieren / zitieren --> Unities abgeben: Nur für Seele
|
Seele Mitglied Konstrukteur
Beiträge: 364 Registriert: 11.06.2003
|
erstellt am: 10. Jan. 2017 16:17 <-- editieren / zitieren --> Unities abgeben:
Funktioniert perfekt, .... Vielen herzlichen Dank, .... genau so habe ich es gebraucht, .... Gruß Wolfgang ------------------ alles ist möglich, nichts funktioniert und trotzdem muß es bis morgen geschafft sein. Werden wir es schaffen? Ja wir schaffen das !!! :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Ehrenmitglied V.I.P. h.c. Tastenhauer
Beiträge: 2017 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build19044.2364 ● Drafting V17~V20.5.1 ● Modeling V17~V20.5.1
|
erstellt am: 03. Mai. 2017 15:01 <-- editieren / zitieren --> Unities abgeben: Nur für Seele
auch-quick-evtl-weniger-dirty (nur als Ergaenzung) statt: Code: (let ((OBJECT_LIST (sd-call-cmds (get_selection :focus_type *sd-object-seltype* :allow_wire_part :allow_face_part :select :Part :recursive :in_assembly BAUGRUPPE))) (ANZAHL 0)) (if OBJECT_LIST (dolist (OBJECT OBJECT_LIST) (when (sd-inq-part-p OBJECT) (when (search SUCHSTRING (sd-inq-obj-basename OBJECT) :test #'char-equal) (incf ANZAHL))))) (display (format nil "Treffer mit Teilstring \"~a\": ~a" SUCHSTRING ANZAHL)) )
dann: Code: (let ((OBJECT_LIST (sd-call-cmds (get_selection :focus_type *sd-part-seltype* :allow_wire_part :allow_face_part :select :recursive :in_assembly BAUGRUPPE))) (ANZAHL 0)) (dolist (OBJECT OBJECT_LIST) (when (search SUCHSTRING (sd-inq-obj-basename OBJECT) :test #'char-equal) (incf ANZAHL))) (display (format nil "Treffer mit Teilstring \"~a\": ~a" SUCHSTRING ANZAHL)) )
- wenn beim dolist die zu durchlaufene Liste NIL ist, wird der body nicht ausgefuehrt
- wenn man eh schon nur PARTS selektieren laesst, kann man sich den "(when (sd-inq-part-p ..))" sparen
- alternativ zum standard LISP search gaebe es die IKIT Funktion sd-string-match-pattern-p
------------------ ● Firefox ESR ● Java 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 >>)
|