Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Programmierung
  VBA Object(HybridBody) als Private an Sub übergeben

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
  
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



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

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 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,

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 HybridBody

Sub 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


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

Beiträge: 12054
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 07. Jun. 2016 08:30    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 PAP 10 Unities + Antwort hilfreich

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



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

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 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

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 HybridBody

Sub 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


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

Beiträge: 12054
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 07. Jun. 2016 12:06    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 PAP 10 Unities + Antwort hilfreich

Servus
Du könntest über eine Schleife dich per .Parent vom "DestinationGeoSet" bis zum Part hochhangeln.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

PAP
Mitglied



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

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 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

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

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