Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  PTC Creo Elements/Programmierung
  Info zuweisen

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
  
Optimieren Sie Ihr Rechenzentrumsn, eine Pressemitteilung
Autor Thema:  Info zuweisen (1702 mal gelesen)
Tom R
Mitglied
Technischer Zeichner


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

Beiträge: 275
Registriert: 02.11.2003

erstellt am: 26. Apr. 2007 15:42    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 zusammen!

Besonders beliebt sind ja Fehler, die auftreten, nachdem das Makro seit zwei Jahren (wahrscheinlich zufällig) fehlerfrei funktionierte.   

Ich habe seinerzeit mit meinen bescheidenen Programmierkenntnissen und eurer gezielten Hilfe ein Makro geschrieben, mit dem man die Befehle "Strecken 1 Element" (TRIM_ONE) und "Mitte raus" (CUT_MIDDLE) auch mit Elementen von inaktiven Teilen ausführen kann.
Dazu klickt man das zu trimmende (aktive) Element an und danach auf die Grenze (die eben auch inaktiv sein kann). Dieses Element, das die Grenze bildet, wird dann ins aktive Teil kopiert und mit einem Info ("Temp") versehen. Danach wird mit dem normalen Trim-Befehl die Aktion ausgeführt und zuletzt noch mittels "DELETE_GLOBAL_INFOS" die Kopie gelöscht.

Das hat bisher auch wunderbar geklappt. Jetzt ist es aber in wenigen Wochen zum zweiten Mal passiert, dass am Ende statt des kopierten Grenzelementes das inaktive Teil gelöscht wurde. Und ich denke, ich habe jetzt herausgefunden, woran es liegt:
Das tritt nur auf, wenn a) das inaktive Teil ein Subpart des aktiven ist und b) das Grenzelement eine Ellipse.
Ich verwende den Punkt, der angeklickt wurde, immer wieder, um die verschiedenen Aktionen durchzuführen. Nun scheint es so zu sein, dass beim Befehl "ADD_ELEM_INFO" diese Punktangabe nicht das kopierte Teil ergibt, sondern das Subpart. Vermutlich durch Ungenauigkeiten bei der Ellipsenberechnung?
Hat da jemand eine sinnvollere Idee?

So, 2 Unities gibt's erst mal für die, die bis hier gelesen haben und 5 weitere für die, die das Problem verstanden haben. *ggg*
Als Hilfe kopiere ich mal auszugsweise mein Makro hier rein.

    LOOP
      LET Status (0)
      READ PNT 'Schnittelement ?' P0
      TRAP_ERROR
      edit_part P0
      IF (NOT CHECK_ERROR)
        INQ_ENV 7
        LET Teilfrage ("~"+(STR(INQ 302)))
        EDIT_PART Teilaktiv
        IF (Teilfrage <> Teilaktiv)
          WUI_INCLUDE_ELEMENT 1 P0 P0 P0
          ADD_ELEM_INFO 'Temp' P0
        END_IF
        LET Status (1)
      END_IF
      EXIT_IF ((Status = 1) AND ((INQ 403) <> C_LINE))
      BEEP
    END_LOOP
    TRIM_ONE P2 P0
    DELETE GLOBAL INFOS 'Temp'
    END

Viele warme Aprilgrüße
Tom

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

Tobi79
Mitglied
Projektleiter / CAD-Administrator


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

Beiträge: 422
Registriert: 22.02.2002

OSD 15.50B
Drawingmanager

erstellt am: 26. Apr. 2007 16:13    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 Tom R 10 Unities + Antwort hilfreich

Hallo Tom

Also die 2 U's würd ich gerne mal abholen  

Könntest Du nicht gleich das ganze Makro (mit local's und so) reinstellen?

Gruss

------------------
Tobi 

 

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

Tom R
Mitglied
Technischer Zeichner


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

Beiträge: 275
Registriert: 02.11.2003

erstellt am: 27. Apr. 2007 07:51    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 Tobi!

Soll ich's gleich überweisen oder meinst du, du kriegst das mit den weiteren 5 U's auch noch hin? 

Gut, in der Hoffnung, dass es hilft, hier mal das Ganze (hoffentlich ist da noch was zu retten *gg*):

DEFINE linie_stutzen {Linien an inaktivem Teil stutzen/dehnen}
  LOCAL P0
  LOCAL P1
  LOCAL P2
  LOCAL Teilaktiv {aktives Teil}
  LOCAL Teilfrage {gewähltes Teil}
  LOCAL Status

  INQ_ENV 7
  LET Teilaktiv ("~"+(STR(INQ 302)))
  LOOP
    LOOP
      LET Status (0)
      READ PNT 'Element angeben, das gestutzt wird ?' P2
      TRAP_ERROR
      edit_part P2
      IF (NOT CHECK_ERROR)
        INQ_ENV 7
        LET Teilfrage ("~"+(STR(INQ 302)))
        EDIT_PART Teilaktiv
        LET Status (1)
      END_IF
      INQ_SELECTED_ELEM
      EXIT_IF ((Status = 1) AND (Teilaktiv=Teilfrage) AND ((INQ 403) <> C_LINE))
      BEEP
    END_LOOP
    LOOP
      LET Status (0)
      READ PNT 'Schnittelement ?' P0
      TRAP_ERROR
      edit_part P0
      IF (NOT CHECK_ERROR)
        INQ_ENV 7
        LET Teilfrage ("~"+(STR(INQ 302)))
        EDIT_PART Teilaktiv
        IF (Teilfrage <> Teilaktiv)
          WUI_INCLUDE_ELEMENT 1 P0 P0 P0
          ADD_ELEM_INFO 'Temp' P0
        END_IF
        LET Status (1)
      END_IF
      EXIT_IF ((Status = 1) AND ((INQ 403) <> C_LINE))
      BEEP
    END_LOOP
    TRIM_ONE P2 P0
    DELETE GLOBAL INFOS 'Temp'
    END
    WINDOW AS_DISPLAYED
  END_LOOP

END_DEFINE

Viele Grüße
Tom

P.S.: Für den anderen Befehl, CUT_MIDDLE, gibt's ein eigenes, ähnliches Makro.

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

Tobi79
Mitglied
Projektleiter / CAD-Administrator


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

Beiträge: 422
Registriert: 22.02.2002

OSD 15.50B
Drawingmanager

erstellt am: 27. Apr. 2007 13:22    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 Tom R 10 Unities + Antwort hilfreich

Hallo Tom

Also bis jetzt schauts nach 5 U's aus.


Ich habe das Makro getestet, und es ist genau so wie du es sagst.

Hab dann mal Versucht den Fehler einzukreisen, und habe mich auf de Zeilen (37, 38, 46) zu konzentrieren

Code:

WUI_INCLUDE_ELEMENT 1 P0 P0 P0
ADD_ELEM_INFO 'Temp' P0
            DELETE GLOBAL INFOS 'Temp'



Habe es "manuell" gemacht, und was mich nun verwundert ist, dass es z.T. funktioniert, z.T aber wieder die U-Baugruppe löschte.

Habe "leider" bald Feierabend, sodass ich nicht mehr weiterforschen kann.


Aber eine Idee hätte ich noch, die Du Versuchen solltest:

Befor du dem Element die Info zuweist, könntest Du die inaktiven Teile ausblenden, sodass diese nicht selektiert werden können.

Das Problem besteht wohl darin, dass statt der aktiven Elipse die inaktive Elipse mit der Info versehen wird.

hoffe das hilft Dir weiter.

schönes Wochenende

------------------
Tobi 

 

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

Tom R
Mitglied
Technischer Zeichner


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

Beiträge: 275
Registriert: 02.11.2003

erstellt am: 27. Apr. 2007 13: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 Tobi!

Stimmt, das wäre einen Versuch wert, ich fürchte aber, dass das ein furchtbares Geblinke gibt, wenn all diese Teile erst aus- und dann wieder eingeblendet werden.
Ich hatte gerade eine andere Idee: könnte man nicht das Element schon im inaktiven Teil kopieren, dann eines der beiden (nun doppelten) Elemente mit der Info versehen und dann mithilfe des Infos das Element ins aktive Teil verschieben? Aber dafür müsste man wohl auch das inaktive Teil kurz aktiv machen? Müsste man mal probieren. Aber heute nicht mehr. Bis ich die Befehle dafür zusammen habe, ist der Feierabend verpasst. 

Montag ist auch noch ein Tag...
Viele Grüße
Tom

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

Tom R
Mitglied
Technischer Zeichner


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

Beiträge: 275
Registriert: 02.11.2003

OSDD 2006
Solid Edge 2020
NX 2212

erstellt am: 30. Apr. 2007 15:09    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!

Aaaaalso, bin bisher keinen Schritt weiter gekommen:

Ob das Subpart ein- oder ausgeblendet ist, interessiert das Programm nicht wirklich. Es hängt die Info trotzdem an. 

Dann habe ich versucht, wie beschrieben, zuerst das Element zu kopieren. Das ist schon mal gar nicht so einfach. Mit dem normalen Kopierbefehl lässt sich ein Element nicht auf sich selbst kopieren.
Mit einem Trick ging's dann doch, aber dann scheiterte die Aktion daran, dass ich die Teile, die mit INCLUDE_ELEMENT kopiert werden sollen, wohl nicht anhand der Info auswählen kann.

und sonst fällt mir im Moment dazu nix mehr ein... 

Viele Grüße
Tom

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

Tobi79
Mitglied
Projektleiter / CAD-Administrator


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

Beiträge: 422
Registriert: 22.02.2002

OSD 15.50B
Drawingmanager

erstellt am: 02. Mai. 2007 13:23    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 Tom R 10 Unities + Antwort hilfreich

Hallo Tom

Als letzte Möglichkeit wollte ich Dir eigentlich ein Update vorschlagen.

Habe es eben mit V13-15 versucht (arbeite auch noch auf der 12). Da kann mann GLOBAL nachgeben und es werden auch inaktive Teile sowie Hilfsgeomtrie selektiert.

Aber: bei dem Versuch habe ich was lästiges festgestellt:

Mit dem Befehl CUT_MIDDLE GLOBAL kann man mit einem Klick Global schneiden. Bei TRIM_ONE und TRIM_TWO muss man zuerst den Befehl wählen, die zu stutzende Linie angeben, dann GLOBAL eingeben und erst dann funzt's...

fine ich sehr unschön gelöst....

naja... schönen Tag noch

------------------
Tobi 

 

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

Tom R
Mitglied
Technischer Zeichner


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

Beiträge: 275
Registriert: 02.11.2003

erstellt am: 08. Mai. 2007 08:33    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 Tobi!

Ich bin leider erst jetzt wieder dazu gekommen...
Das wusste ich nicht, dass man bei den neueren Versionen die Option GLOBAL einsetzen kann. Trifft sich aber sehr gut, schließlich haben wir hier seit kurzem die 13 im Einsatz. 
Ich habe jetzt einfach den Makronamen beibehalten, aber die neue Befehlsform eingesetzt, so dass der Anwender von der Reihenfolge der Parameter nichts mitkriegt. Die Tests jedenfalls haben geklappt.

Dank dir nochmal vielmals für deine Hilfe!

Viele Grüße
Tom

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