Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Programmierung
  Anzahl der Teilstrings im Teilenamen innerhalb einer Baugruppe zählen?

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
Autor Thema:  Anzahl der Teilstrings im Teilenamen innerhalb einer Baugruppe zählen? (1206 mal gelesen)
Seele
Mitglied
Konstrukteur


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

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


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

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 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 Seele 10 Unities + Antwort hilfreich

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


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

Beiträge: 364
Registriert: 11.06.2003

erstellt am: 10. Jan. 2017 10:50    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 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


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

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 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 Seele 10 Unities + Antwort hilfreich

So aus dem Stegreif: füge nach dem key :part den key :recursive ein

------------------
Patrick

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

Seele
Mitglied
Konstrukteur


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

Beiträge: 364
Registriert: 11.06.2003

erstellt am: 10. Jan. 2017 16:17    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

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


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: 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 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 Seele 10 Unities + Antwort hilfreich

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