| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
Autor
|
Thema: [ME10] READ PNT (789 mal gelesen)
|
RobCraven Mitglied Konstrukteur
Beiträge: 107 Registriert: 30.01.2009
|
erstellt am: 23. Feb. 2010 13:06 <-- editieren / zitieren --> Unities abgeben:
Hallo liebe Gemeinde, ich hab mal (hoffe ich zumindest) eine kurze Frage. Ich möchte in einem Macro mit READ PNT einen Punkt abfragen, auf den dann mit CS_REF_PT der Koordinatenursprung gelegt wird. Ist es möglich den Punkt unabhängig vom Maßstab abzufragen, oder aber vorher den Maßstab auf 1:1 festzulegen? So sieht das ganze jetzt aus.
Code: READ PNT ' Bitte den Basispunkt fÏr das Symbol anklicken' P0 CS_REF_PT RELATIVE P0 let P0 (0,0) { Koor. Ursprung nach P0}
das Macro soll unter V13.20 laufen LG KJ. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PeterO Mitglied Admin
Beiträge: 101 Registriert: 14.01.2003 Windows XP Modeling 15.50A Drafting 15.50A UI3 ModelManager 15.50A
|
erstellt am: 23. Feb. 2010 13:32 <-- editieren / zitieren --> Unities abgeben: Nur für RobCraven
Hi, du kannst den Punkt mit dem aktuellen Maßstab berechnen. { Zeichnungsmaßstab ermitteln } INQ_ENV 6 LET Z_scale (1 / (ABS (INQ 4)))
{ Einfügepunkt abfragen und berechnen } READ PNT 'Position anwÌhlen' P_sym LET P_sym (PNT_XY ((X_OF P_sym)/Z_scale) ((Y_OF P_sym)/Z_scale)) ------------------ Gruß, Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RobCraven Mitglied Konstrukteur
Beiträge: 107 Registriert: 30.01.2009
|
erstellt am: 23. Feb. 2010 13:50 <-- editieren / zitieren --> Unities abgeben:
Hallo Peter, die Idee ist echt super, aber ich bräuchte anstatt des Zeichnungsmaßstabs den Maßstab des aktiven Teils. hast du da auch eine Idee. EDIT: ich hab da was gefunden, ich kriegs aber nicht wirklich intregiert. Und zwar INQ_PART 4
Code: INQ_PART LET T_scale (1/(ABS(INQ 4))) { Zeichnungsmaßstab ermitteln } READ PNT ' Bitte den Basispunkt fÏr das Symbol anklicken' P0 LET P0 (PNT_XY ((X_OF P0)/T_scale) ((Y_OF P0)/T_scale))
er sagt immer Wertebereichsfehler Wo liegt das problem? Ich weiß auch nicht, ob ich das INQ_PART richtig aufrufe wird.[Diese Nachricht wurde von RobCraven am 23. Feb. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
H.annes Mitglied CAD-Pfriemler
Beiträge: 482 Registriert: 02.07.2001 OSDD 8.7 - 13.20 ; OSDM 13.00
|
erstellt am: 23. Feb. 2010 15:37 <-- editieren / zitieren --> Unities abgeben: Nur für RobCraven
Zitat: Original erstellt von RobCraven:
er sagt immer Wertebereichsfehler Wo liegt das problem? Ich weiß auch nicht, ob ich das INQ_PART richtig aufrufe wird.[Diese Nachricht wurde von RobCraven am 23. Feb. 2010 editiert.]
korrekter ansatz inq_part erwartet als parameter einen teil - also teinename oder "unique partname" oder "punkt auf element" - für den aktuellen teil kannst du auch ".!" nehmen. richtig ist also: INQ_PART "." hannes
------------------ za wos? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RobCraven Mitglied Konstrukteur
Beiträge: 107 Registriert: 30.01.2009
|
erstellt am: 23. Feb. 2010 16:22 <-- editieren / zitieren --> Unities abgeben:
Hallo, @Hannes: Danke so klappt das mit dem Abfragen. Aber meinem eingentlichen Problem bin ich nur einen kleinen Schritt näher gekommen. Deshalb stell ich das Macro hier mal rein. Es geht darum, das solange der Maßstab des aktiven Teils 1:1 ist alles super funktioniert, ist aber der Maßstab z.B. 1:2 wird das Symbol an einer ganz anderen Stelle erstellt, als an der, die man angeklickt hat. Die Berechnung des Punktes mit Hilfe des Teile-Maßstabs bringt zumindest für das erste Symbol was, der Rest liegt aber wieder irgendwo. Im originalen Macro wird das leere Symbol zuerst erstellt und dann soll man anklicken. Das hat aber den Nachteil, das man das neu erstellte leere Symbol innerhalb des Macros nicht mehr los wird, wenn man die Schleife mit END beendet. Deshalb hatte ich das erstellen des Symbols hinter das Klicken gelegt. Vielleicht bin ich ja mit dem Maßstab auf dem Holzweg. Schaut's euch bitte mal an... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
H.annes Mitglied CAD-Pfriemler
Beiträge: 482 Registriert: 02.07.2001 OSDD 8.7 - 13.20 ; OSDM 13.00
|
erstellt am: 24. Feb. 2010 08:55 <-- editieren / zitieren --> Unities abgeben: Nur für RobCraven
morgen! es gibt eine funktion zum umrechnen der koordinaten zwischen teilen ... die find ich aber grad auch nicht ... ich habs damals immer so gemacht: * im aktuellen teil einen punkt mit einem eindeutigen info zeichen * den anderen teil editieren & den punkt mit dem info abfragen * den punkt dann wieder löschen. also etwa so:
Code: LET Eindeut_info ('tempInfo:'+STR (TIME)) READ PNT P0 ADD_CURRENT_INFO Eindeut_info POINT P0 CHANGE_CURRENT_INFO Eindeut_info '' EDIT_PART TOP INQ_SELECTED_ELEM GLOBAL POINTS INFOS Eindeut_info LET P1 (INQ 101) DELETE GLOBAL POINTS INFOS Eindeut_info
in P1 stehen dann die korrekten koordinaten. da geht man dann zwar mit der kirche ums kreuz, wie man hier sagt ... aber was solls: es funtioniert
------------------ za wos? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RobCraven Mitglied Konstrukteur
Beiträge: 107 Registriert: 30.01.2009
|
erstellt am: 24. Feb. 2010 13:10 <-- editieren / zitieren --> Unities abgeben:
Hallo, Danke erstmal für deine Antwort. Ich hab das mal ausprobiert und damit ist der angeklickte Punkt identisch mit dem Bezugspunkt des Symbols, also genau das erstmal Gewünschte (das gleiche erreicht man auch mit CS_SYMBOL OFF, ist vielleicht der Befehl den du meintest), jedoch tut sich jetzt das nächste Problem auf und zwar, dass die Geometrie ja auf 1:1 (Symbol) ausgelegt ist, sprich die ist jetzt zu klein oder zu groß. Gut da könnt ich die Punkte mit dem Maßstab multiplizieren, wird aber glaub ich ziemlich schwer durch die Winkel. Deshalb meine Frage gibt es eine Möglichkeit, dass nach dem Drücken von ENDE noch eine Aktion ausgeführt wird, z.B. das aktuelle Teil zu löschen und dann erst das Macro beendet wird.
LG KJ. EDIT: Also ich habs jetzt hingekriegt, und zwar mit dem was Hannes geschrieben hatte, nur das ich nach CHANGE_CURRENT_INFO das Teil erstelle. So was in der Art meinte Hannes bestimmt auch, aber bei mir dauerts manchmal etwas länger... LG KJ.
[Diese Nachricht wurde von RobCraven am 24. Feb. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |