Autor
|
Thema: Bauteile nach constraint isolieren (2049 mal gelesen)
|
GeorgK Mitglied
Beiträge: 619 Registriert: 06.06.2001
|
erstellt am: 14. Jul. 2010 17:17 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 14. Jul. 2010 22:46 <-- editieren / zitieren --> Unities abgeben: Nur für GeorgK
Servus Mögliche Vorgehensweise: - Constrain selektieren - alle Prodcts/Parts ausblenden - Referenz der Constrains einlesen (über GetConstraintElement) - Exemplarname aus Displyname extrahieren - beide Parts/Products selektieren und einblenden Anbei ein Beispiel (Constrain-Name "hart"gecoded, keine Fehlerbehandlung) gescheiben in CATvba: Code: Sub CatMain()Dim productDocument1 As ProductDocument Set productDocument1 = CATIA.ActiveDocument Dim product1 As Product Set product1 = productDocument1.Product 'Alle ausblenden Dim oProduct As Product Dim oSel As Selection Set oSel = productDocument1.Selection For Each oProduct In product1.Products oSel.Clear oSel.Add oProduct oSel.VisProperties.SetShow catVisPropertyNoShowAttr oSel.Clear Next 'Constrain einlesen Dim constraints1 As Constraints Set constraints1 = product1.Connections("CATIAConstraints") Dim constraint1 As Constraint Set constraint1 = constraints1.Item("Kongruenz .1") 'Reference auslesen Dim reference1 As reference Set reference1 = constraint1.GetConstraintElement(1) Dim reference2 As reference Set reference2 = constraint1.GetConstraintElement(2) 'Exemplarnamen extrahieren und selektieren Dim sArray() As String sArray = Split(reference1.DisplayName, "/") oSel.Add product1.Products.Item(sArray(1)) sArray = Split(reference2.DisplayName, "/") oSel.Add product1.Products.Item(sArray(1)) oSel.VisProperties.SetShow catVisPropertyShowAttr End Sub
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GeorgK Mitglied
Beiträge: 619 Registriert: 06.06.2001
|
erstellt am: 15. Jul. 2010 07:34 <-- editieren / zitieren --> Unities abgeben:
|
GeorgK Mitglied
Beiträge: 619 Registriert: 06.06.2001 Inventor 2017 Siemens NX 8.5 - 12.0 Autocad Mechanical 2017 Catia V5R19 3,4 GHz; 64 GB RAM Windows 10 openSUSE Leap 42.3 Visual Studio 2010 - 2017 Windows 2012 R2 Vault 2017
|
erstellt am: 28. Jul. 2010 15:54 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 28. Jul. 2010 16:21 <-- editieren / zitieren --> Unities abgeben: Nur für GeorgK
|
GeorgK Mitglied
Beiträge: 619 Registriert: 06.06.2001
|
erstellt am: 28. Jul. 2010 19:33 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 28. Jul. 2010 19:37 <-- editieren / zitieren --> Unities abgeben: Nur für GeorgK
Servus Lass dir mal die Namen der Referenzen (zB MsgBox reference1.DisplayName) ausgeben. Kommt da mindesten ein "/" vor? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GeorgK Mitglied
Beiträge: 619 Registriert: 06.06.2001
|
erstellt am: 28. Jul. 2010 19:45 <-- editieren / zitieren --> Unities abgeben:
|
GeorgK Mitglied
Beiträge: 619 Registriert: 06.06.2001 Inventor 2017 Siemens NX 8.5 - 12.0 Autocad Mechanical 2017 Catia V5R19 3,4 GHz; 64 GB RAM Windows 10 openSUSE Leap 42.3 Visual Studio 2010 - 2017 Windows 2012 R2 Vault 2017
|
erstellt am: 29. Jul. 2010 12:48 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, den constraint selektiere ich so: Private Sub btn_select_Click() Me.Hide Dim oSel Dim sFilter(0) sFilter(0) = "Constraint" Dim oDoc As ProductDocument Set oDoc = CATIA.ActiveDocument Set oSel = oDoc.Selection oSel.Clear If oSel.SelectElement2(sFilter, "Constraint auswählen", False) = "Normal" Then
Dim oCon As Constraint Set oCon = oSel.Item2(1).Value 'Call MsgBox("Name der Constraint:" + oCon.Name, vbInformation) txtbx_constraint = oCon.Name End If Me.Show End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |