| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Wie kann ich bestimmtes Patern mit Grip löschen? (790 mal gelesen)
|
NXDJ Mitglied Konstrukteur
Beiträge: 15 Registriert: 19.01.2009
|
erstellt am: 29. Jan. 2009 19:15 <-- editieren / zitieren --> Unities abgeben:
Hallo NX-Fans! Habe wieder mal ein kleines Problem! Wie kann ich über Grip das Patern des aktuellen Blattes löschen? Habes es bislang so gemacht aber da löscht er ja alle! Code: $$ Typ auswahl MASK/OMIT,10 $$ Löschen DELETE/ALL HALT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sirus Ehrenmitglied CAD Applikationsentwickler
Beiträge: 1564 Registriert: 03.06.2004 SolidWorks2022
|
erstellt am: 02. Feb. 2009 08:40 <-- editieren / zitieren --> Unities abgeben: Nur für NXDJ
hallo NXDJ wenn du den paternnamen kennst... DELETE/PATERNAME ansonsten eine IFTHEN abfrage. ich kenn mich da nicht sehr gut aus, habe aber ein paar grips im einsatz die nicht von mir sind. ich empfehle dir das prog hier rein zu stellen, es gibt ein paar die sich da gut auskennen. ------------------ gruss urs Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Grips Mitglied Techniker
Beiträge: 532 Registriert: 21.09.2004
|
erstellt am: 02. Feb. 2009 15:18 <-- editieren / zitieren --> Unities abgeben: Nur für NXDJ
Zitat: Original erstellt von NXDJ: Hallo NX-Fans!Habe wieder mal ein kleines Problem! Wie kann ich über Grip das Patern des aktuellen Blattes löschen? Habes es bislang so gemacht aber da löscht er ja alle! Code: $$ Typ auswahl MASK/OMIT,10 $$ Löschen DELETE/ALL HALT
@NXDJ ;) Ich mache es immer so, willst du trotzdem alle Pattern löschen einfach INEXTE durch INEXTE/ALL ersetzen
Code: ENTITY/p_obj(10)if/ &curdrw == &nulstr,jump/hlt: MASK/10 INEXTE pp = 0 L1: pp = pp + 1 p_obj(pp) = NEXTE/IFEND,L2: jump/L1: L2: pp = pp - 1 if/ pp > 0,delete/p_obj(1..pp) hlt: HALT
ps.: Das von Overcast angesprochene problem ist in diesem Code bereits gelöst. Es werden auf der aktuellen Drawing alle Patters aufgesammelt und in L2: nach dem Database Cycle gelöscht. ------------------ mfg
Grips
[Diese Nachricht wurde von Grips am 02. Feb. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| |
Overcast Mitglied
Beiträge: 111 Registriert: 21.12.2005 .
|
erstellt am: 02. Feb. 2009 15:36 <-- editieren / zitieren --> Unities abgeben: Nur für NXDJ
Zitat: Original erstellt von NXDJ: Wie kann ich über Grip das Patern des aktuellen Blattes löschen?
Theoretisch kann das aktuelle Blatt mehrere Pattern-Objekte beinhalten. Man kann z.B. durch alle Patterns cyclen und den View-Status abfragen. Wird eine View zurückgeliefert, die gleich der aktuellen Work View (Zeichnungsansicht) ist, liegt das Pattern in dieser Zeichnung. Habe mal eben was zusammengestrickt. Mit dem folgenden Code wird das erste gefundene Pattern gelöscht und das Programm danach beendet. Code:
ENTITY/ pat STRING/ vwname(132), patname(132),workvwname(132) workvwname = &WORKVW PRINT/ 'Current work view: ' + workvwname MASK/ 10 INEXTE/ALL a10: pat = NEXTE/ IFEND, a90: vwname = &VWDEP(pat) patname = &PATPRT(pat) IFTHEN/ vwname == workvwname PRINT/ 'Found pattern ' + patname + ' on view ' + workvwname DELETE/pat JUMP/ a90: ENDIF JUMP/ a10: a90: HALT
Wichtig: wenn es mehrere Pattern gibt, so dürfen diese nicht innerhalb von NEXTE gelöscht werden, da sonst das Cyclen aufgrund des fehlenden Objektes nicht fortgeführt werden kann. In diesem Fall müsste man also z.B. ein Array füllen und dies anschliessend nach dem Cyclen löschen. Vielleicht hilft dies ja weiter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |