| |
 | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 |
| |
 | Schnell, effizient und günstig: Mit der Kisters 3DViewStation 3D Arbeits- und Reparaturanleitungen einfach erstellen und pflegen, eine Pressemitteilung
|
Autor
|
Thema: VBA Object(HybridBody) als Private an Sub übergeben (1147 / mal gelesen)
|
PAP Mitglied

 Beiträge: 29 Registriert: 08.08.2012 CATIA V5 R19 Win 7 Prof. Intel Xeon 3.6Ghz 16Gb RAM Nvidia Quadro 2000
|
erstellt am: 06. Jun. 2016 20:32 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe in meinem Makro zwei Subs, eine soll ein GeoSet setzen, die andere darin Punkte erzeugen. Ich dachte ich übergebe einfach das gesetzte GeoSet als Object, aber das geht nicht, wie kann ich das lösen? Die Sub SelItem wird mit dem Ergebnis einer Selection beliefert "objSelection.Item(1).Value" In der DoPoint kriege ich die Koordinaten für den Punkt, aber ich kann hier nicht das Set mitgeben, da ich es mit einer Selection festlege, oder?!
Code:
Option Explicit Private DestinationGeoSet As HybridBodySub SelItem(objHybridBody As HybridBody) DestinationGeoSet = objHybridBody MsgBox "Success" End Sub Sub DoPoint(objInput As Object) Dim objCoords(2) objInput.GetCoordinates (objCoords) End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 07. Jun. 2016 08:30 <-- editieren / zitieren --> Unities abgeben:          Nur für PAP
Servus Irgendwie verstehe ich deine Frage nicht (wo erstellst du einen Punkt). Der Ort an dem das Element erzeugt wird wird bei PartDesign-Features über "InWorkObject" festgelegt. Bei Flächen/Wireframe-Features wird das Features erst erzeugt und dann über "AppendHybridShape" einem Hybridbody zugeordnet. (sieht man auch schön bei der Makroaufzeichnung) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PAP Mitglied

 Beiträge: 29 Registriert: 08.08.2012 CATIA V5 R19 Win 7 Prof. Intel Xeon 3.6Ghz 16Gb RAM Nvidia Quadro 2000
|
erstellt am: 07. Jun. 2016 11:53 <-- editieren / zitieren --> Unities abgeben:         
Der Pukt soll in der Sub Dopoint erstellt werden, da sieht man nur noch nichts. Das soll irgendwie in diese Richtung funktionieren: Code:
Option Explicit Private DestinationGeoSet As HybridBodySub SelItem(objHybridBody As HybridBody) DestinationGeoSet = objHybridBody MsgBox "Success" End Sub Sub DoPoint(objInput As Object) Dim objCoords(2) objInput.GetCoordinates (objCoords) Dim documents1 As Documents Set documents1 = CATIA.Documents Dim partDocument1 As PartDocument Set partDocument1 = documents1.Item("Part1.CATPart") Dim part1 As Part Set part1 = partDocument1.Part Dim hybridShapeFactory1 As HybridShapeFactory Set hybridShapeFactory1 = part1.HybridShapeFactory Dim hybridShapePointCoord1 As HybridShapePointCoord Set hybridShapePointCoord1 = hybridShapeFactory1.AddNewPointCoord(objCoords(0), objCoords(1), objCoords(2)) DestinationGeoSet.AppendHybridShape hybridShapePointCoord1 part1.InWorkObject = hybridShapePointCoord1 part1.Update End Sub
Nur will ich in der DoPoint eben keine Referenz auf ein part drin haben, sondern er soll das geoset (und entsprechende part) nehmen, dass mit SelItem gesetzt wird... Vielen Dank udn viele Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 07. Jun. 2016 12:06 <-- editieren / zitieren --> Unities abgeben:          Nur für PAP
|
PAP Mitglied

 Beiträge: 29 Registriert: 08.08.2012 CATIA V5 R19 Win 7 Prof. Intel Xeon 3.6Ghz 16Gb RAM Nvidia Quadro 2000
|
erstellt am: 07. Jun. 2016 20:09 <-- editieren / zitieren --> Unities abgeben:         
Hi, eigentlich funktioniert es so, ich hatte nur einen Fehler ganz am Anfang Code: Option Explicit Private DestinationGeoSet As HybridBody Sub SelItem(objHybridBody As HybridBody) Set DestinationGeoSet = objHybridBody MsgBox "Success" End Sub
Das Set hat gefehlt, mit dem Set funktioniert es. Das Part Frage ich ab, wie du vorgeschlagen hast und übergebe es auch an eine private variable. Vielen DAnk und viele Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |