Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Referencen einer Intersection durch Selection

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
Autor Thema:  Referencen einer Intersection durch Selection (815 mal gelesen)
Aitec
Mitglied



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

Beiträge: 30
Registriert: 25.04.2018

Catia V5-R2016

erstellt am: 23. Mai. 2018 15:40    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 CAD Community,

ich habe bin mal wieder an einem Punkt angekommen wo mir Literatur, Websuche oder der Makrorecorder nicht weiterhelfen.
Es geht dabei um Folgendes:
Ich befinde mich auf Produktebene. Im verlauf es Makros selektiere ich ein Part welches als zweite Reference für die Intersection dienen soll welche ich erzeugen möchte. Das Problem liegt nun darin, dass die Intersection zwar angelegt wird jedoch stimmt etwas mit der besagten Reference nicht. Anbei ein Codeschnippsel

Code:
 
Dim KSel As Variant
Dim KFilter(3)
Set KSel = ADoc.Selection
KSel.Clear
KFilter(0) = "Body"
KFilter(1) = "HybridBody"
KFilter(2) = "Part"
KFilter(3) = "Product" 
Dim ref_plane As Reference

Set ref_plane = MeinPart.CreateReferenceFromObject(MeinPart.HybridBodies.Item("GeoSections").HybridShapes.Item("Plane.1"))
       
MsgBox "Bitte Wählen Sie ein Part aus.", 0, "Section erzeugen"
       
KSelection = KSel.SelectElement2(sFilter, "Bitte Part auswählen", False)

Dim MeinBauteil As AnyObject
If KSelection = "Normal" Then
  Set MeinBauteil = KSel.Item2(1).Value
End If
           
Dim ref1 As Reference
   
Set ref1 = AProduct.Products.Item(MeinBauteil .Name).ReferenceProduct.Parent.Part.CreateReferenceFromObject(KSel.Item2(1).Value)
       
       
Dim Intersection As HybridShapeIntersection
Set Intersection = oHybridShapeFactory.AddNewIntersection(ref_plane, ref_seitenwand)
        hybridBody1.AppendHybridShape Intersection
        MeinPart.Update


Ich hoffe mein Problem einigermaßen verständlich erklärt zu haben.
Vielen Dank für eure Unterstützung!

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: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 23. Mai. 2018 18:19    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 Aitec 10 Unities + Antwort hilfreich

Servus

Befinden sich beide Elemente der Intersection im gleichen Bauteil in der auch dieser erzeugt werden soll?
Wo wird in deinem Code ref_seitenwand gebildet?
Ist MeinBauteil nun die Instanz, das Part oder das ReferenceProduct?

Gruß
bernd

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

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

Aitec
Mitglied



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

Beiträge: 30
Registriert: 25.04.2018

Catia V5-R2016

erstellt am: 24. Mai. 2018 08:59    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

Servus bgrittmann,

in meinem Makro wird ein neues Part sowie eine neue Fläche erzeugt, welche in diesem Part liegt. Auf dieses Part greife ich über (MeinPart) zu. Die Seitenwand ist ein Part welches in einer komplexeren Produktstruktur untergeordnet ist. Die beiden Element befinden sich nicht im selben Bauteil.
Ich habe ref_seitenwand durch ref1 ersetzt. Das habe ich aber bereits schon korrigiert. Mein Problem besteht vor allem jetzt darin das ich nicht weiß wie ich meine ref1 korrekt beschreibe. Ich möchte nämlich während des Makros nur auf die Seitenwand (per Maus) klicken und diese Selektion für die reference Erzeugung verwenden.
Final soll die Intersection in dem von mir erzeugten Part liegen, dies geschieht auch bereits, außer das die Intersection nicht gebildet wird,da ihr die ref1 fehlt.
Syr für diese verwirrenden Kennzeichnungen.

Danke und VG!

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: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 24. Mai. 2018 18:26    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 Aitec 10 Unities + Antwort hilfreich

Servus

Wenn du das manuell machst, wird ja automatisch eine verknüpfte Fläche in das Part kopiert. Das muss du leider auch in einem Makro nachbilden.
Wenn der Baugruppenkontext (also die unterschiedliche Position der Bauteile) nicht erforderlich ist kannst du die Fläche einfach per PasteSpecial zwischen den Parts kopieren.
Falls der Baugruppenkontext erforderlich ist wird es komplexer: zum kopieren muss der "Pfad" für die Referenz gebildet werden (siehe auch hier)

Gruß
Bernd

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

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

Aitec
Mitglied



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

Beiträge: 30
Registriert: 25.04.2018

Catia V5-R2016

erstellt am: 28. Mai. 2018 11: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

Hallo bgrittmann,

danke für die Antwort. Ich habe das Problem jetzt mithilfe von Copy & Paste gelöst. Leider muss ich zum Kopieren immer genau das Solid aus dem Baum auswählen. Es wäre schön wenn dies auch Funktionieren würde wenn ich direkt auf das Bauteil klicke.

VG und Danke !

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: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 28. Mai. 2018 17: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 Nur für Aitec 10 Unities + Antwort hilfreich

Servus

Dass geht zB mit LeafProduct dass dir die Instanz liefert

Code:
Sub CATMain()

Dim osel As Variant
Dim SelFilter(0)
dim Status as String
dim SelDocument as Document

Set osel = Catia.Activedocument.Selection

SelFilter(0) = "AnyObject"
     
Status = osel.SelectElement2(SelFilter, "Bitte Part auswählen", False)

if Status =  "Normal" then
    msgBox osel.item2(1).LeafProduct.Name
Set SelDocument = osel.item2(1).LeafProduct.ReferenceProduct.Parent
MsgBox SelDocument.Name
end if

End Sub


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

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