Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  PTC Creo Elements/Programmierung
  Element_ID statt Pickpunkt ?

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 PTC CREO
  
MAIT erhält den Abas Partner Performance Award 2025, eine Pressemitteilung
Autor Thema:  Element_ID statt Pickpunkt ? (929 mal gelesen)
Reiner
Mitglied
Maustreiber


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

Beiträge: 24
Registriert: 06.11.2000

erstellt am: 02. Jun. 2003 16:39    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 Makro-Programmierer,

gibt es eine Möglichkeit ein Element direkt mit einer
Element_ID anzusprechen statt den Pickpunkt zu benutzen.
Die Gefahr ist ja immer gegeben dass sich an dem Pickpunkt
bereits ein Element befindet und somit eventuell das falsche
erwischt wird. Ich kenne das von anderen CAD-Systemen.
 
Wie bekomme ich das in ME10 gebacken ?

Gruss
Reiner


DEFINE picktest

  LOCAL count

  { bisherige Element-Info löschen }
  DELETE_CURRENT_INFO
 
  { Alle jetzt eingefügten Elemente erhalten diesen Info-String }
  ADD_CURRENT_INFO 'MeineTexte' END
 
  { Texte erzeugen }
  TEXT 'Text' 0,0 END
  TEXT 'Text' 0,0 END
 
 
  { alle eingefügten Texte selektieren }
  INQ_SELECTED_ELEM SELECT INFOS 'MeineTexte' CONFIRM END
  { Schleife über alle selektierten Texte }
  LET count 0
  WHILE ((INQ 14) > 0)
    IF ((STR (INQ 403)) = 'TEXT')
   
      DISPLAY ('Text: ' + (INQ 902))
 
      LET count (count + 1)
      CHANGE_TEXT (STR count) (INQ 101) END

      { besser wäre mit ID, wenn es so was in ME10 gibt ????

      CHANGE_TEXT (STR count) (Element_ID) END
 
      }
 
    END_IF
 
    { Zeiger auf nächstes Element } 
    INQ_NEXT_ELEM
  END_WHILE

END_DEFINE

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

baumgartner
Mitglied
Dipl.-Ing. Maschinenbau


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

Beiträge: 715
Registriert: 05.01.2001

Ing.-Büro Andreas Baumgartner bietet Lösungen rund um ME10.
* ME10-Makros
* ME10-Makroschulungen

erstellt am: 02. Jun. 2003 18:15    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 Reiner 10 Unities + Antwort hilfreich

hallo,
wenn das so einfach wäre... - ich löse es immer so ähnlich...

DELETE_CURRENT_INFO
ADD_CURRENT_INFO "info text1"
TEXT "Text1" 0,0 END

DELETE_CURRENT_INFO
ADD_CURRENT_INFO "info text2"
TEXT "Text2" 0,0 END

CHANGE_TEXT "neuer Text" SELECT (*GLOBAL*) INFOS "info text2" CONFIRM END

Allerdings ist die Sache mit dem SELECT INFOS nicht ganz ohne, denn wenn das angegebene Info nicht in der Zeichnung ist, gibt es Probleme die man gesondert behandeln muss. Wenn die Texte schon in der Zeichnung sind, dann können diese Infos doch auch mittels Makro schon erzeugt werden.

INQ_SELECTED_ELEM SELECT (*GLOBAL*) TEXTS ALL CONFIRM END
LOOP
EXIT_IF (INQ 14=0)
  let count (count +1)
  (* eventuell prüfen ob "count" schon mal vorhanden ist *)
  ADD_ELEM_INFO count INQ 101
  INQ_NEXT_ELEM
END_LOOP

So alles jetzt ungetestet, aber so ähnlich gehe ich dann immer vor.

ME10-Makro-Grüsse

------------------
Grüsse aus dem Schwarzwald 
www.Andreas-Baumgartner.de

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

RAND CoCreateSolutions
Mitglied



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

Beiträge: 10
Registriert: 22.04.2002

erstellt am: 02. Jun. 2003 19:36    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 Reiner 10 Unities + Antwort hilfreich

Also lösen kann man das mit POINTER


 
  { Alle jetzt eingefügten Elemente erhalten diesen Info-String }
  ADD_CURRENT_INFO 'MeineTexte' END
 
  { Texte erzeugen }
  TEXT 'Text' 0,0 END
  TEXT 'Text' 0,0 END
 
 
  { alle eingefügten Texte selektieren }
  INQ_SELECTED_ELEM SELECT INFOS 'MeineTexte' CONFIRM END
  CHANGE_TEXT 'Bubu' SELECT POINTER (INQ 2) CONFIRM END
  INQ_NEXT_ELEM
  usw.
  Natürlich auch mit Schleife möglich

Gruß
Stefan
   

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

H.annes
Mitglied
CAD-Pfriemler


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

Beiträge: 482
Registriert: 02.07.2001

OSDD 8.7 - 13.20 ; OSDM 13.00

erstellt am: 03. Jun. 2003 07:27    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 Reiner 10 Unities + Antwort hilfreich

Morgen,

(INQ 2) ist wirklich eine hilfreiche & tolle Lösung - erwähnen muß man aber noch, das dies UNDOCUMENTED und damit UNSUPPORTED ist:

Zitat:
This way we have direct access to element structure in memory and can manipulate it.
Therefore it may be risky if you write macros carelessly and use try to use a pointer of e.g. element that was already deleted.
Although SELECT first checks if the element really exists, POINTER was nevertheless decided not to be available for users due to such risks.

Aber es funktioniert fantastisch!


Ein kleiner Tip noch:
Wenn Du beim INQ_SELECTED_ELEM noch ein TEXTS einfügst, sparst Du ein IF  :

Code:
DEFINE Picktest
  LOCAL Count
  DELETE_CURRENT_INFO
  ADD_CURRENT_INFO 'MeineTexte' END
  TEXT 'Text' 0,0 END
  TEXT 'Text' 0,0 END
  INQ_SELECTED_ELEM SELECT TEXTS INFOS 'MeineTexte' CONFIRM END
  LET Count 0
  WHILE ((INQ 14) > 0)
    DISPLAY_NO_WAIT ('Text: ' + (INQ 902))
    LET Count (Count + 1)
    CHANGE_TEXT (STR Count) POINTER (INQ 2) END
    INQ_NEXT_ELEM
  END_WHILE
END_DEFINE

Gruß aus Österreich,
Hannes

------------------
und i hob im kalenda gschaut: heit ged da wind.

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

Reiner
Mitglied
Maustreiber


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

Beiträge: 24
Registriert: 06.11.2000

erstellt am: 03. Jun. 2003 10:11    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 Leute,

vielen Dank für die schnellen Lösungen 

Das mit dem POINTER habe ich natürlich gleich getestet weil
das die Lösung ist nach der ich gesucht habe.

Leider funktioniert es mit der Version 8.7 nicht.
Welche Version habt ihr benutzt ?

Aber trotzdem vielen Dank an alle. Units sind unterwegs.

Viele Grüße
Reiner

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

baumgartner
Mitglied
Dipl.-Ing. Maschinenbau


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

Beiträge: 715
Registriert: 05.01.2001

Ing.-Büro Andreas Baumgartner bietet Lösungen rund um ME10.
* ME10-Makros
* ME10-Makroschulungen

erstellt am: 03. Jun. 2003 10:36    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 Reiner 10 Unities + Antwort hilfreich

hallo,
aus früherer Frage weiss ich ja, dass bei Euch ME10-8.7 im Einsatz ist. Mein Vorschlag von oben ist zwar ein alter Hut, doch läuft die Sache mit ME10-8.7 und auch älteren Versionen. POINTER geht in ME10-11x ganz gut.


------------------
Grüsse aus dem Schwarzwald 
www.Andreas-Baumgartner.de

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

H.annes
Mitglied
CAD-Pfriemler


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

Beiträge: 482
Registriert: 02.07.2001

OSDD 8.7 - 13.20 ; OSDM 13.00

erstellt am: 03. Jun. 2003 11:32    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 Reiner 10 Unities + Antwort hilfreich

Hallo Reiner,

ja, leider: POINTER gibts erst ab Version 11.0.

Das Keyword POINTER ist zwar auch in der 8er-Version definiert, aber funktionieren tut's erst ab 11.


Hannes

------------------
undmiadanwosmadanundmiadanawosondas
oisdeswosmadanundwosondasdamara

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

Andreas 253
Mitglied
 


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

Beiträge: 157
Registriert: 01.03.2002

erstellt am: 14. Jan. 2004 09:36    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 Reiner 10 Unities + Antwort hilfreich

Hallo,

Ich krame mal diesen altenBeitrag wieder raus, weil ich ein aktuelles Problem zu dem Thema habe.

Ich hänge mit folgendem Befehl eine Info an ein gewähltes Element an:

ADD_ELEM_INFO 'getestet' SELECT POINTER (INQ 2) CONFIRM END

Prinzipiell funktioniert das auch, aber scheinbar ist die Info erst nach abarbeiten des gesamten Makros vorhanden.
Wenn ich später in dem gleichen Makro diese Info für eine Auswahl benutzen will, scheint sie für das gewählte Element noch nicht da zu sein, wohl aber für Elemente, die diese Info in früheren Durchläufen des Makros bekommen haben.

Weiß jemand eine Lösung, wie ich diesen Mechanismus trotzdem nutzen kann?

Gruß
Andreas

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