| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
| |
 | MAIT übernimmt Kundenstamm von GMCAD, eine Pressemitteilung
|
Autor
|
Thema: Bemaßung - Gruppe definieren (139 / mal gelesen)
|
MiBr Mitglied Konstrukteur
  
 Beiträge: 590 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: 22. Sep. 2025 10:43 <-- editieren / zitieren --> Unities abgeben:         
Hallo, mit dem Befehl 'am_define_group' kann man ja Gruppen definieren, also z.b. Bemaßungen mit Texte. Jetzt möchte ich alle Bemaßungen auf einer Zeichnung löschen, außer die Bemaßungen an denen ein Text hängt bzw. die in so einer Gruppe sind. Jetzt suche ich eine Befehl der irgendwie so heißen könnte: (sd-am-bemassung-gruppiert-p dim-item) Nur den kann ich leider nicht finden. Hat da evtl. jemand eine Idee? Gruß Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2364 Registriert: 3.20. ● PE60+80+90@home ● W10 Pro Build19045.6282 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.1.0.1@job ● Taschenrechner ● brain 6.3 ● Stift+Zettel V8.42
|
erstellt am: 22. Sep. 2025 11:28 <-- editieren / zitieren --> Unities abgeben:          Nur für MiBr
|
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2364 Registriert: 3.20. ● PE60+80+90@home ● W10 Pro Build19045.6282 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.1.0.1@job ● Taschenrechner ● brain 6.3 ● Stift+Zettel V8.42
|
erstellt am: 22. Sep. 2025 15:47 <-- editieren / zitieren --> Unities abgeben:          Nur für MiBr
Dann will ich mal nicht so sein und doch noch heute auch ne lange Antwort senden 😏 Annotator.exe ist ja nix anderes als ein aufgebohrter, fern gesteuerter ME10. Also schmeißen wir die ME10 Hilfe an: file:///C:/Program Files/PTC/Creo Elements/Direct Drafting 20.7.4.0/locale/en/me_help/me_frame.htm An detaillierte Informationen kommt man mit INQ_ELEM / INQ_SELECTED_ELEM + INQ (einNümmerchen) ran. Also unter: file:///C:/Program Files/PTC/Creo Elements/Direct Drafting 20.7.4.0/locale/en/me_help/me_helpi.htm#INQ_ELEM file:///C:/Program Files/PTC/Creo Elements/Direct Drafting 20.7.4.0/locale/de/me_help/me_helpi.htm#INQ_ELEM findet sich die Abfrage von Details aller möglichen Elementtypen:
Code: If element type = TEXT 316 Returns "GROUP" if text is in a group, else it returns " ".If element type = DIM_... 316 Returns "GROUP" if dimension is in a group, else it returns " ".
Das musst du also per (sd-execute-annotator-function :fnc "...") von deiner Bemaßung abfragen. Zusätzlich wildern wir noch im großen Schatz der vorhandenen Macros: Code: C:\Programs\PTC\cedm_pe90\Annotation\win\*.m
um uns einen Schnipsel für einen boolschen Return Value zu ergattern. "Fertig ist die Laube!" Letztlich ein Ein-Zeiler! Siehe Anhang. Der Test-Dialog in der Toolbox ist gratis. 😌 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MiBr Mitglied Konstrukteur
  
 Beiträge: 590 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: 23. Sep. 2025 08:10 <-- editieren / zitieren --> Unities abgeben:         
Hallo, das sieht so locker aus wie du das schreibst bzw. schilders, Danke! Und wie war das mit dem kleinen Finger. Ach ja, wenn man den hat kann man auch die ganze Hand nehmen. Oder, hänge ich schon am Arm? Kannst du auch die an der Bemaßung gebundenen "Texte" ausgeben?!? Wahrscheinliche Antwort: Ja aber wie!?! Gruß Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2364 Registriert: 3.20. ● PE60+80+90@home ● W10 Pro Build19045.6282 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.1.0.1@job ● Taschenrechner ● brain 6.3 ● Stift+Zettel V8.42
|
erstellt am: 23. Sep. 2025 10:06 <-- editieren / zitieren --> Unities abgeben:          Nur für MiBr
Zitat: Original erstellt von MiBr: .... hänge ich schon am Arm?Kannst du auch die an der Bemaßung gebundenen "Texte" ausgeben?!? Wahrscheinliche Antwort: Ja aber wie!?!
Du hängst schon an zwei Armen! Was fertiges gibt es da nicht. Mit dem selben mini test dialog kannstu auch mal andere Funktionen aufrufen. Dafür änderst du zuerst noch die selection auf DIMS+TEXTS damit man beides auswählen kann. dann rufst du mal im after-input (zusätzlich) Code: (sd-execute-annotator-function ... "Docu_get_members_of_group_ptr 'the-annotator-reference-pointer' " ...)
auf. Da kommt für jedes angefragte Element eine Property Liste zurück. Entscheidend ist :MASTER . Master ist der Pointer der die Elemente der Gruppe vereint und dann eben identisch ist. Da du ja eher LISPelst als Makro schreibst, hier ein Rezept: - 1. Schritt * selektiere eine dimension (interaktive) ** hole alle Texte in der Ansicht der Bemassung. ** nudel durch die Liste und *** gucke ob der Text in einer group ist *** und gucke dann nach dem Master ** wenn der Master eines Textes == Master der Bemassung ist (oder die Bemassung selbst) *** Merke dir das Text sel-item - 1. Schritt Fertig - 2. Schritt * für alle gemerkten Texte besorge dir den Text inhalt: via IKIT sd-am-inq-text-strings - 2. Schritt Fertig ------------------ ● 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 |
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2364 Registriert: 3.20. ● PE60+80+90@home ● W10 Pro Build19045.6282 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.1.0.1@job ● Taschenrechner ● brain 6.3 ● Stift+Zettel V8.42
|
erstellt am: 23. Sep. 2025 10:26 <-- editieren / zitieren --> Unities abgeben:          Nur für MiBr
So, wie ich dich kenne wirst du vermutlich gleich wieder alle Bemassungen auf der Zeichnung beackern wollen. Dann wäre es für drölf Bemassungen einer Ansicht blöd drölf mal alle Texte in der Ansicht zu besorgen. Also mal den Versuch wagen alle Texte auf der Zeichnung zu nehmen und dann zu reduzieren:
Code: ;; not tested! (setq all-texts-in-drawing (get_selection :focus_type *sd-anno-text-seltype* :select :by_drawing_docu_rest))(setq all-texts-in-any-group-in-drawing (delete-if-not 'sd-am-text-in-group-p all-texts-in-drawing)) ;; not tested!
Damit haben wir allerdings auch ALLE texte im Schriftfeld erwischt und das sind meist recht viele. Jetzt kannst du die Bemassungen jeweils mit all-texts-in-any-group-in-drawing abgleichen. @all: ja auf macro ebene wäre da manches schneller, kann der MiBr aber nicht so gut. ------------------ ● 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 |
MiBr Mitglied Konstrukteur
  
 Beiträge: 590 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: 23. Sep. 2025 12:33 <-- editieren / zitieren --> Unities abgeben:         
Zitat: So, wie ich dich kenne wirst du vermutlich gleich wieder alle Bemassungen auf der Zeichnung beackern wollen. Dann ...
GENAU !!! - und die Texte zu reduzeiren klappt schon mal ganz gut und ist auch bei großen Zeichnungen schnell genug! Leider stehe ich komplett auf den Schlauch wie du das mit den 'Master' meinst  Also dein vorherigger Beitrag und macro kann er garnicht  Was ich lispeln könnte wäre: 1) Wiederherstellungspunkt setzen (sd-set-model-checkpoint) 2) Alle Texte in Vorher-Liste packen 3) Alle gruppierte Bemaßungen in Liste packen 4) Mittels Dolist Bemaßungen durchgehen 4.1) Bemaßung löschen 4.1) Alle Texte in Aktuelle-Liste packen 4.2) Listen abgleichen 4.3) Übergebliebene Elemente mit Bemaßung zur Bemassung_mit_Texte_Liste pushen 4.4) Wiederhertellungspunkt aufrufen 4.5) return Dolist - Alle Bemaßungen durchlaufen lassen 5. So und jetzt ganz Wichtig! Mit dem Kopfschütteln aufhören!!! 
Das könnte ich vielleicht hinbekommen, aber dabei muss ich natürlich pro Bemaßung immer alle Text aufrufen und der (sd-set/get-model-checkpoint) wird auch nicht umsonst sein! Gruß Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2364 Registriert: 3.20. ● PE60+80+90@home ● W10 Pro Build19045.6282 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.1.0.1@job ● Taschenrechner ● brain 6.3 ● Stift+Zettel V8.42
|
erstellt am: 24. Sep. 2025 13:05 <-- editieren / zitieren --> Unities abgeben:          Nur für MiBr
Zitat: Original erstellt von MiBr: die Texte zu reduzieren klappt schon mal ganz gut und ist auch bei großen Zeichnungen schnell genug!
Hier mal ohne delete und model-check-point: Code: ---- dimension in drawing "a001" ---- ---- dimension found with 1 text grouped --- * dim value [65] at position -68.319850854367061,106.36244130876682 ** "a" ---- dimension found with 3 texts grouped --- * dim value [207] at position 9.5123169406367936,69.736341105410617 ** "1" ** "2" ** "3" ---- dimension found with 2 texts grouped --- * dim value [63] at position 4.6801491456329156,106.36244130876682 ** "b" ** "c"
Die Ausgabe ist natürlich rudimentär und meine Testdaten minimal. Ich würde jetzt zu einer generierten HTML Datei mit Firmen Logo und Drawing Name+Version / Drawing Owner usw. Information im oberen Teil des Dokuments tendieren, mit Datum und Uhrzeit und font-styling ala Corporate Identity und so. Aber : not my job! ------------------ ● 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 |