Autor
|
Thema: Partübergreifend / Erkennung von betroffenen Parts (1097 mal gelesen)
|
CADestroyer Mitglied Konstrukteur
Beiträge: 20 Registriert: 15.02.2017 Catia V5R28 Siemens NX 12.0
|
erstellt am: 31. Mrz. 2021 11:36 <-- editieren / zitieren --> Unities abgeben:
Hallo Community, gibt es in Catia als Macro die Möglichkeit betroffene Parts zu erkennen und diese automatische mit PowerCopies zu bearbeiten/ändern? Nur mal als Verschaulichung: Ich habe Zentrierunskontur. Diese wird auf bzw. in einem Part positioniert. Das Makro soll nun das gegenüberliegende Part erkennen und dort das Gegenstück zur Zentrierungskontur anbringen. 1.) Ist dies überhaupt möglich? 2.) Wie ist das umsetzbar? Ich weiß, dass es hier wahrscheinlich tief in die Programmierung geht und wohl zum Teil auch erarbeitete Expertenkenntnisse benötigt werden. Daher ist es für mich auch Ok, wenn nicht euer ganzes Wissen hier veröffentlich wird und ihr mir nur eine Tipp gebt. Aktuell ist die Positionierung über ein separates "Steuerungspart" und ext. Verweise gelöst. Vielen Dank. [Diese Nachricht wurde von CADestroyer am 31. Mrz. 2021 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADestroyer Mitglied Konstrukteur
Beiträge: 20 Registriert: 15.02.2017 Catia V5R28 Siemens NX 12.0
|
erstellt am: 09. Apr. 2021 13:55 <-- editieren / zitieren --> Unities abgeben:
Um die ganze Sache für die ersten Schritte zu vereinfachen, kann man, wenn ich auf einer Fläche einen Punkt (in einer Skizze) erzeuge, ermitteln, welches Part der Punkt ebenfalls berührt? Dazu muss ich aber erst einmal ein anderes Problem lösen: Wie kann ich, wenn ich in einem Produkt bin, in einem Part ein PowerCopy als Makro ausführen? Wenn ich ihm Part im Produkt bin, also im Part Design, gibt mir ein Makro als ActiveDocument das Produkt aus.
Code: Sub CATMain()Dim Dokument As document Set Dokument = CATIA.ActiveDocument MsgBox (Dokument.Name) End Sub
Daher kann diese Makro auch nicht funktionieren (in meinen Augen), da es ja nicht im Part ist. Somit kann das Power Copy nicht erstellt werden. Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 09. Apr. 2021 14:06 <-- editieren / zitieren --> Unities abgeben: Nur für CADestroyer
Servus Eventuell geht das über eine Kollisionsprüfung. Statt dem Punkt muss dann eventuell ein Solid (zB Kugel) verwendet werden. (separates Teil in der Baugruppe) Für eine PowerCopy benötigst du dann aber im entsprechenden Teil wieder eine Geometrie als Input. Somit bist du fast wieder bei einem Skelettmodel. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 09. Apr. 2021 16:44 <-- editieren / zitieren --> Unities abgeben: Nur für CADestroyer
Zu deiner zweiten Frage: im CATProduct auf die Products-Collection zugreifen, darin dann auf die Instanz deines CATParts das du bearbeiten willst zugreifen und dann auf das Part über .ReferenceProduct.Parent.Part wechseln Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADestroyer Mitglied Konstrukteur
Beiträge: 20 Registriert: 15.02.2017 Catia V5R28 Siemens NX 12.0
|
erstellt am: 09. Apr. 2021 19:14 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank Bernd! Kannst du (oder gerne jemand anderes) vielleicht eine Lektüre zur Catia Makro Programmierung empfehlen? Ich hab hier zwar "CATIA V5 - Makroprogrammierung mit Visual Basic Script" und "CATIA V5 - Effiziente Konstruktion mit Makros". Aber mit fehlt da etwas die Erklärung von den Zusammenhängen usw. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 09. Apr. 2021 19:26 <-- editieren / zitieren --> Unities abgeben: Nur für CADestroyer
Servus AFIAK gibt es wenig Literatur. ggf noch Kochbuch - CATIA V5 automatisieren: Vom Powercopy bis zur C#-Programmierung Ich hab viel durch, die Analyse der Struktur mithilfe des Watch/Lokalfensters von VBA, lesen/verstehen der Doku (auch dessen Aufbau) und analysieren von Code hier aus dem Forum gelernt. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADestroyer Mitglied Konstrukteur
Beiträge: 20 Registriert: 15.02.2017 Catia V5R28 Siemens NX 12.0
|
erstellt am: 18. Apr. 2021 21:22 <-- editieren / zitieren --> Unities abgeben:
Ich werde es nun, wie vorgeschlagen, mit einer kleinen temporären Kugel probieren, welche danach wieder gelöscht wird. Wie kann ich die Ergebnisse der Kollisionsprüfung auslesen und verwenden? Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 19. Apr. 2021 16:16 <-- editieren / zitieren --> Unities abgeben: Nur für CADestroyer
Servus Vermutlich ist das Vorgehen wie manuell. Clash anlegen -> FirstGroup und SecondGroup definieren -> InterferenceType und ComputationType festlegen -> Compute -> über Conflicts die Collection der Ergebnisse aufrufen und auswerten. (siehe Doku ggf auch Makrorekorder und Forensuche) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADestroyer Mitglied Konstrukteur
Beiträge: 20 Registriert: 15.02.2017 Catia V5R28 Siemens NX 12.0
|
erstellt am: 19. Apr. 2021 16:59 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 19. Apr. 2021 20:55 <-- editieren / zitieren --> Unities abgeben: Nur für CADestroyer
|
CADestroyer Mitglied Konstrukteur
Beiträge: 20 Registriert: 15.02.2017 Catia V5R28 Siemens NX 12.0
|
erstellt am: 23. Apr. 2021 08:49 <-- editieren / zitieren --> Unities abgeben:
Erst einmal vielen Dank für deine Hilfe. Entschuldige bitte die doofe Frage, aber welche Doku meinst du? Eine andere Frage zu dem ganzen Thema: Ich versuche den Abstand (MinimumDistance) zwischen zwei Parts zu messen (Später soll dies durch Punkt zu Part (Body) ersetzt werden). Aber das Makro bringt mir bei "MsgBox measurable1.GetMinimumDistance(reference2)" eine Fehlermeldung und ich finde keine Lösung. Code:
Language="VBSCRIPT"Sub CATMain() Dim MyDoc As Document Set MyDoc = CATIA.ActiveDocument Dim MainProduct As Product Set MainProduct = MyDoc.Product Dim product1 As Product Dim product2 As Product Set product1 = MainProduct.Products.Item("OT") Set product2 = MainProduct.Products.Item("UT") Dim SPAWorkbench1 As SPAWorkbench Set SPAWorkbench1 = MyDoc.GetWorkbench("SPAWorkbench") Dim reference1 As Reference Dim reference2 As Reference Set reference1 = MainProduct.CreateReferenceFromName("Product1/OT/") Set reference2 = MainProduct.CreateReferenceFromName("Product1/UT/") Dim measurable1 As Measurable Set measurable1 = SPAWorkbench1.GetMeasurable(reference1) MsgBox measurable1.GetMinimumDistance(reference2) End Sub
Update: Hab es in der Doku gefunden Update 2: Das Script "CAASpaClashFiltering.CATScript" aus der Doku macht bei mir nichts. Keine Fehlermeldung und kein Ergebnis. [Diese Nachricht wurde von CADestroyer am 23. Apr. 2021 editiert.] [Diese Nachricht wurde von CADestroyer am 23. Apr. 2021 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 23. Apr. 2021 19:40 <-- editieren / zitieren --> Unities abgeben: Nur für CADestroyer
Servus Zitat: Update 2: Das Script "CAASpaClashFiltering.CATScript" aus der Doku macht bei mir nichts. Keine Fehlermeldung und kein Ergebnis.
Das Script legt lediglich ein Kollisions-Objekt im Baum an und füllt den Status und den Kommentar für jede Kollision aus. Zu deinem MinimumDistance-Problem: Wie lautet die Fehlermeldung? Stimmen die "Pfade" bei der Erstellung der Referenzen? (ggf Screenshot des Baums posten) Gruß Bernd PS: ggf ist es einfacher ein Distance-Objekt zu verwenden, dann entfällt die Erstellung der Reference geht dann später nicht zum Messen zwischen Punkt und Part
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 25. Apr. 2021 08:28 <-- editieren / zitieren --> Unities abgeben: Nur für CADestroyer
Servus Wenn ich die Doku richtig interpretiere: Zitat: ... gives dimensions related to another object (ex the distance between two products). A restriction occurs for distance between: bodies (CATBody) cannot be measured.
ist weder eine Messung (SPAWorbbench) zwischen Products noch Bodies möglich. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADestroyer Mitglied Konstrukteur
Beiträge: 20 Registriert: 15.02.2017 Catia V5R28 Siemens NX 12.0
|
erstellt am: 27. Apr. 2021 08:16 <-- editieren / zitieren --> Unities abgeben:
|