Autor
|
Thema: Minimaler Abstand zw. Ebene und Komponente (865 mal gelesen)
|
Xahaeus304 Mitglied
Beiträge: 9 Registriert: 27.03.2020 DMU Navigator V5R2018 Catia V5-6R2018
|
erstellt am: 16. Apr. 2020 13:57 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich versuche gerade per VBA Makro den minimalen Abstand zwischen einer von mir erstellten Ebene und einem Bauteil auszulesen. Mein Problem ist, dass mein Bauteil kein Part ist, sondern eine Komponente in einem Produkt. Ich scheitere schon an der Variablendeklaration, weil ich nicht herausfinde, wie ich die Komponente ansprechen kann. Muss ich zuerst sowas Ähnliches machen wie "product to part", also quasi "component to part" oder kriege ich das Ganze auch direkt in der Produktoberfläche hin? Ich hoffe ihr könnt mir zumindest einen Tipp gegen, wie ich über die Startschwierigkeiten hinwegkomme. Vielen Dank. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lionel Hutz Mitglied
Beiträge: 363 Registriert: 26.03.2014 CATIA V5 R20
|
erstellt am: 16. Apr. 2020 14:26 <-- editieren / zitieren --> Unities abgeben: Nur für Xahaeus304
Deine Problembeschreibung ist sehr allgemein gehalten daher ist die Wahrscheinlichkeit, dass dir Antworten weiter helfen würden sehr gering. Wie würdest du es denn machen, wenn du den Abstand Ebene/Part messen wolltest? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Xahaeus304 Mitglied
Beiträge: 9 Registriert: 27.03.2020 DMU Navigator V5R2018 Catia V5-6R2018
|
erstellt am: 16. Apr. 2020 14:38 <-- editieren / zitieren --> Unities abgeben:
Ähnlich wie im 4 Beitrag hier, also über GetMinimumDistance. Das funktioniert auch, dass ich da den Abstand zwischen Ebene und Punkt bekomme. Was ich aber nicht hinbekomme ist das im Produktumfeld laufen zu lassen und den Punkt durch eine Komponente zu ersetzen. [Diese Nachricht wurde von Xahaeus304 am 16. Apr. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Xahaeus304 Mitglied
Beiträge: 9 Registriert: 27.03.2020 DMU Navigator V5R2018 Catia V5-6R2018
|
erstellt am: 16. Apr. 2020 15:51 <-- editieren / zitieren --> Unities abgeben:
Ich habe jetzt noch etwas weiter rumprobiert und bin bei dem Code angekommen: Code: Sub test()Dim Catia as Object Set Catia = GetObject(, "CATIA.Application") Set Sel = Catia.Active.Document.selection Sel.Clear Sel.Search ("Name='*Sphere.1*',all*) Set Part = Sel.Item(1).Value Sel.Clear Sel.Search ("Name='*Plane.1*',all*) Set Ebene = Sel.Item(1).Value Set PartDocumentA = Part.Parent.Parent.Parent.Parent Set PartDocumentB = Ebene.Parent.Parent.Parent.Parent Set referenceA = PartDocumentA.CreateReferenceFromObject(Part) Set referenceB = PartDocumentA.CreateReferenceFromObject(Ebene) Set Workbench = Catia.ActiveDocument.GetWorkbench("SPAWorkbench") Set TheMeasurable = Workbench.GetMeasurable(Ebene) Abstand = TheMeasurable.GetMinimumDistance(Part) MsgBox "Abstand = " & Abstand & " mm" End Sub
Ich hab dafür einfach mal eine Kugel im Ursprung und eine Ebene etwas weiter weg erstellt und das funktioniert soweit. Ich kenne mich noch zu wenig mit der Materie aus, aber "CreateReferenceFromObject" scheint wohl nur mit Parts zu funktionieren oder? Da liegt nämlich das Problem, wenn ich statt der Kugel mein Bauteil suchen lasse. Was ich noch vergessen habe zu erwähnen, aber bestimmt extrem wichtig ist, ich arbeite mit .cgr Files. 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: 16. Apr. 2020 20:18 <-- editieren / zitieren --> Unities abgeben: Nur für Xahaeus304
Servus Da CreateReferenceFromObjekt nur in einem Part funktioniert musst du wohl den Pfad für CreateReferenceFromName zusammenbauen (siehe zB hier) Wenn du statt der Ebene ein genügend große Fläche nutzen würdest, könntest du ggf auch eine Abstandsanalyse nutzen (GetTechnologicalObject("Distances")). AFAIR musst du dann nur die Products übergeben. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |