Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Direct Drafting
  Elemente mit einfach verwendetem Grenzpunkt VERTEX finden

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 Creo
Autor Thema:  Elemente mit einfach verwendetem Grenzpunkt VERTEX finden (386 / mal gelesen)
friedhelm at work
Mitglied
Techniker Aluminium Profile


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

Beiträge: 908
Registriert: 01.04.2003

Creo Elements Direct
/Drafting 17+20.x
ui classic-Tablett + Windows,
Modeling 17-20.x
Lizenz auf USB-Netzwerkadapter
PE-Express 8
Win 10 Enterprise 64 @work
Win 10 Pro 64 @home
Notepad++,IrfanView,eDrawings,
....

erstellt am: 15. Dez. 2023 17: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

Grüß euch,
Direct Drafting, ME10 kennt die Elemente (Linie, Bogen und Abrundung) die an einem oder beiden Enden nicht an mindestens ein anders Element angeschlossen sind.
Die Standardfarbe dieser offenen Endpunkte ist grün, die der mehrfach verwendeten Grenzpunkte gelb.
Sichtbar sind die wenn man auf SHOW VERTEX ON schaltet.
Ich möchte gerne per Makro die Elemente finden, die zumindest ein offenes Ende haben.

Warum? Wir haben geschlossene Konturen (Aluprofile), die wir als .dxf anderen Anwendungen zur Verfügung stellen müssen.
Diese Geometrie darf nur aus den oben genannten Elementen (Linie, Bogen und Abrundung) bestehen, Farbe Weiß, Linienart Solid. Sonst nix.
Die Kunden-Anwendungen kontrollieren die gelieferten Daten sehr gründlich und finden jede Abweichung, können sie aber nicht selber korrigieren.

Jetzt kommt es leider vor, dass wir ab und zu "Hilfselemente" in die Zeichnungen einfügen um zB. Maße oder Winkelbemaßungen setzen zu können.
Bleiben diese "Artefakte" nach dem Säubern der Zeichnung, die per Macro erfolgt, übrig verursachen sie Fehler.
Der Benutzer wird zwar aufgefordert das Ergebnis der Säuberung zu kontrollieren und nach grünen Vertex zu suchen, aber da kommt der Faktor Mensch ins Spiel.
Un- oder (Bequemlichkeit) -beabsichtigt 

Danke im Voraus und schönes Wochenende 

------------------
Gruss Friedhelm

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

der_Wolfgang
Ehrenmitglied V.I.P. h.c.
Tastenhauer


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

Beiträge: 2138
Registriert: 3.20.

● PE6+8@home
● W10 Pro Build19045.3803
● Drafting V17~V20.6.1
● Modeling V17~V20.6.1
● @Scirotec201804

erstellt am: 16. Dez. 2023 15:00    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 friedhelm at work 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von friedhelm at work:
Direct Drafting, ME10 kennt die Elemente (Linie, Bogen und Abrundung) die an einem oder beiden Enden nicht an mindestens ein anders Element angeschlossen sind.
.....
Ich möchte gerne per Makro die Elemente finden, die zumindest ein offenes Ende haben.

Es gibt !! im Annotation !! eine Funktion, die eine equidistante erzeugt. Die Läuft, beginnend bei einem angeklicktem Element einen Linienzug entlang. Wenn diese an einem Vertice EIN weiteres Element findet, läuft die weiter. Wenn 3+ oder 1 Elemente gefunden werden, hört der Automatismus auf und 'er' fragt interaktive nach Hilfe. ..  Also so in etwa.

Sie macht das natürlich genau anders herum, als Deine Frage indirekt fragt.

Das ganze ist aber in den Quell-offenen Makros vom Annotation zu finden. Da kannst Du mal stöbern. Das ist auch so alt das dies im PE8 Installations Verzeichnis drin ist.

---------------------------

Ansonsten: eigener Makro:

  • Inq all Elements
  • fülle eine Tabelle mit der Element ID und den Eckpunkten (inq 101) und (inq 102), also 2 (!) Zeilen pro Element
  • Sortiere die Liste nach den Eckpunkten
  • laufe durch die Liste und gucke ob ein Eckpunkt in der aktuellen UND vorherigen Zeile vorhanden ist, also identisch sind (siehe auch weiter unten)
  • wenn in der Liste ein Eckpunkt nur EINMAL vorhanden ist, Schnapp dir diese Element-ID  ==> FUND!

TIP: schreibe den Makro so, das er nicht (im ME10) interaktiv wird. Denn dann kannst Du den auch im Annotation einfach aufrufen.

TIP: im Annotation gibt es nen Makro, der dir eine LTAB als HTML file hübsch aufbereitet. Der bekommt 2 Parameter.

Code:
DEFINE Write_ltab_to_html
  PARAMETER Ltabname
  PARAMETER Filename
Der ist auch voll ME10 kompatible! Der sollte beim Schreiben Deines Makros hilfreich sein. So kannst du den Inhalt der Tabelle immer 'mit dem Auge' kontrollieren. Kannst den ja auch 3 mal aufrufen und 3 unterschiedliche HTML files erzeugen.

Beim Vergleichen der Vertices tolerant sein: Also nicht P01==P02!  Sondern Vektor Länge der Differenz < 0.001 oder so.

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

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

Kotom-Eng
Mitglied



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

Beiträge: 14
Registriert: 18.11.2022

erstellt am: 16. Dez. 2023 19:04    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 friedhelm at work 10 Unities + Antwort hilfreich

Hallo friedhelm at work,
Ich schlage dieses Makro vor, das die Linien, Bögen und Verrundungen, deren einer der Eckpunkte grün ist, rot einfärbt.
Ist das was du willst?

Hallo der_Wolfgang,
Ich halte es nicht für sinnvoll, einen Vergleich mit einer Toleranz (z. B. < 0,001) anzustellen. Tatsächlich werden die Endpunkte eines Elements (Linie, Bogen, Text usw.) nicht mit dem Element gespeichert. Das Element enthält nur den Verweis auf einen Punkt. Ein Punkt, der zwei Elementen gemeinsam ist, wird nur einmal gespeichert und beide Elemente zeigen auf denselben Ort. Die INQ-Funktion gibt daher genau den gleichen Wert zurück.


{ Unconnected Elements }
LET KE_uce_tab_name 'uce'

DEFINE KE_uce_search
  LOCAL Ctr
  LOCAL Nb_elt

  CREATE_LTAB 200 2 KE_uce_tab_name
  INQ_SELECTED_ELEM SELECT LINES ALL OR ARCS ALL OR FILLETS ALL CONFIRM
  LET Nb_elt ( INQ 14 )
  LET Ctr 1
  WHILE (Ctr <= Nb_elt)
    WRITE_LTAB KE_uce_tab_name Ctr 1 ( INQ 332 )
    IF (( INQ 403 ) = LINE )
      WRITE_LTAB KE_uce_tab_name Ctr 2 ( STR ( INQ 101 ))
    ELSE
      WRITE_LTAB KE_uce_tab_name Ctr 2 ( STR ( INQ 103 ))
    END_IF
    WRITE_LTAB KE_uce_tab_name (Nb_elt + Ctr) 1 ( INQ 332 )
    WRITE_LTAB KE_uce_tab_name (Nb_elt + Ctr) 2 ( STR ( INQ 102 ))
    INQ_NEXT_ELEM
    LET Ctr (Ctr+1)
  END_WHILE

  LET Nb_elt ( LTAB_ROWS KE_uce_tab_name )
  LET Ctr 1
  WHILE (Ctr <= Nb_elt)
    SELECT_FROM_LTAB KE_uce_tab_name COLUMN 2 = ( READ_LTAB KE_uce_tab_name Ctr 2 ) END
    IF (( LTAB_ROWS 'sys_select') < 2 )
      SHOW SELECT POINTER ( READ_LTAB KE_uce_tab_name Ctr 1 ) CONFIRM RED
    END_IF
    LET Ctr (Ctr+1)
  END_WHILE

END_DEFINE

------------------

http://kotom.eng.free.fr/

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

der_Wolfgang
Ehrenmitglied V.I.P. h.c.
Tastenhauer


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

Beiträge: 2138
Registriert: 3.20.

● PE6+8@home
● W10 Pro Build19045.3803
● Drafting V17~V20.6.1
● Modeling V17~V20.6.1
● @Scirotec201804

erstellt am: 17. Dez. 2023 20: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 Nur für friedhelm at work 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Kotom-Eng:
.. Das Element enthält nur den Verweis auf einen Punkt. Ein Punkt, der zwei Elementen gemeinsam ist, wird nur einmal gespeichert und beide Elemente zeigen auf denselben Ort.
👍 Guter Punkt, das macht es wieder einfacher. Seit paar Jahren mache ich fast nix mit Makro Code mehr - bin da etwas eingerostet!


KE_uce_search  sieht schon mal gut aus!

Oh du machst einen N fachen Select in der Table..  hmmm..  Performance-technisch vielleicht doch auch machbar. Deswegen hatte ich die Idee nach den Eckpunkten zu sortieren und dann einmal durch die Spalte 2 zulaufen mit dem schnöden Points-Equal als check.

Gucken wir mal wie es Friedhelm gefällt 😉

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

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

Kotom-Eng
Mitglied



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

Beiträge: 14
Registriert: 18.11.2022

erstellt am: 19. Dez. 2023 18:10    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 friedhelm at work 10 Unities + Antwort hilfreich


Unconnected_elements.png

 
Dieses Makro eignet sich auch zum Schraffieren komplexer Konturen.

------------------

http://kotom.eng.free.fr/

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

friedhelm at work
Mitglied
Techniker Aluminium Profile


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

Beiträge: 908
Registriert: 01.04.2003

Creo Elements Direct
/Drafting 17+20.x
ui classic-Tablett + Windows,
Modeling 17-20.x
Lizenz auf USB-Netzwerkadapter
PE-Express 8
Win 10 Enterprise 64 @work
Win 10 Pro 64 @home
Notepad++,IrfanView,eDrawings,
....

erstellt am: 20. Dez. 2023 15:57    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


KE_uce_search_v1.m.txt


fk_show_only_green_vertex.m.txt


Beispiel.mi.txt

 
Hallo
hat was gedauert, aber man hat schliesslich Urlaub und Zeit für nichts.

>Gucken wir mal wie es Friedhelm gefällt.
Sehr, sehr gut ! Bin begeistert ! 
Un très grand merci Gerald !
(Comment préfères-tu qu'on t'appelle, Kottom-eng ou Gerald ?)
Jetzt aber wieder Deutsch.

Hatte eigentlich gehofft, dass es eine Art INQ-Befehl geben würde der die offene bzw. geschlossenen Vertex finden kann.
Das ist aber scheinbar nicht der Fall.
Ich hätte auf die von der_Wolfgang beschriebene Weise weitergemacht.
Ber statt dessen bekommen wir ein voll funktionierendes Macro dass die Aufgabe perfekt löst. 

Habe noch verschiede Anpassungen vorgenommen um es an unsere Bedürfnisse anzupassen.
Zusätzlich ein Macro dass wir schon vorher verwendet haben.
Es blendet alle Vertex ausser der Grünen aus.
Da muss aber noch auf die eigene Hintergrundfarbe angepasst werden.
Zum Probieren auch eine Profilgeometrie.
Denke ich werde noch von euch hören.
Wünsche schon hier frohe Weihnachten und einen guten Rutsch. 

------------------
Gruss Friedhelm

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

Kotom-Eng
Mitglied



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

Beiträge: 14
Registriert: 18.11.2022

erstellt am: 21. Dez. 2023 18:45    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 friedhelm at work 10 Unities + Antwort hilfreich

Es gibt eigentlich keine INQ-Funktion, mit der Sie feststellen können, ob ein Element einen verbundenen Scheitelpunkt hat oder nicht.
Andererseits gibt es in Drafting intern ähnliche Algorithmen, auf die aber leider nicht zugegriffen werden kann. Zum Beispiel in MERGE, HATCH, AREA_PROPERTY, CLEAN_DRAWING.

Ich bevorzuge den Namen Gerard, weil Kotom-Eng der Name meiner Firma ist.

Schöne Ferien.

------------------

http://kotom.eng.free.fr/

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