| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
 | Mit der Kisters 3DViewStation komplexeste 3D CAD-Daten beherrschen, eine Pressemitteilung
|
Autor
|
Thema: Flächen messen und in Excel eintragen (1002 / mal gelesen)
|
ThomasTeoma Mitglied Konstrukteur

 Beiträge: 27 Registriert: 13.03.2015 Win7 Enterprise 64Bit Intel Xeon CPU E5-1620 3,6GHz 32GB RAM
|
erstellt am: 18. Dez. 2020 08:05 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich versuche gerade ein Makro zu schreiben mit dem ich Flächen (Multible-Extract, Join, Trim) abmessen und den flächenwert ins excel übertragen kann - bis zum suchen und markieren funktioniert bei meinem test soweit alles. nach ausführen des Makros ist die richtige Fläche markiert. leider scheitere ich jetzt beim messen und eintragen, vielleicht kann mir ja wer aus der patsche helfen gesteuert wird das ganze vom Excel aus, in Catia kann ich nämlich die Excel Bibliotheken nicht aktivieren und bin mir auch nicht sicher ob die Firmen IT das zulässt.. Catia V5 R28, Excel 2016, strenge firmen IT würd mich freuen wenn mir wer helfen könnte. Sub Paint()
Dim s1 As String Dim spabench As SPAWorkbench Dim mymeas As Measurable Dim ref1 As Reference Dim myans As Double Dim InputObjectType(0) s1 = Worksheets("Sheet1").Range("a1") MsgBox s1 Set CATIA = GetObject(, "CATIA.Application") Set productDocument1 = CATIA.ActiveDocument Set selection1 = productDocument1.Selection
selection1.search "(Name=" & s1 & " - 'Generative Shape Design'.'Geometrical Set');all" Set ref1 = Selection.Item(1).Reference Set spabench = partDocument1.GetWorkbench("SPAWorkbench") Set mymeas = spabench.GetMeasurable(ref1) myans = mymeas.Area Debug.Print myans 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: 18. Dez. 2020 15:45 <-- editieren / zitieren --> Unities abgeben:          Nur für ThomasTeoma
Servus Thomas Folgender Codeabschnitt zum Messen läuft bei mir als CATScript: Code: Set partDocument1 = CATIA.ActiveDocument Set oSel = partDocument1.Selection oSel.Search "(Name=" & s1 & " - CATGmoSearch.OpenBodyFeature),all" Set ref1 = oSel.Item(1).Reference Set spabench = partDocument1.GetWorkbench("SPAWorkbench") Set mymeas = spabench.GetMeasurable(ref1) myans = mymeas.Area MsgBox myans
Läuft bei dir der Code (GetObject noch ergänzen)? Wenn nicht, kommt eine Fehlermeldung? Ist bei dir ein Part geöffnet? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasTeoma Mitglied Konstrukteur

 Beiträge: 27 Registriert: 13.03.2015 Win7 Enterprise 64Bit Intel Xeon CPU E5-1620 3,6GHz 32GB RAM
|
erstellt am: 21. Dez. 2020 07:25 <-- editieren / zitieren --> Unities abgeben:         
Hallo Bernd, Code als CATScript läuft bei mir auch. bei versuchen catia mit excel zu verknüpfen bin ich letzte woche noch früher gescheitert - vermeindlich weil ich die excel Referenzen im Catia nicht aktivieren kann. Situation ist bei mir grundsätzlich so, das Excel(stückliste) offen ist und Catia Product - mit ca. 50 Bauteilen drinnen.. Hast du eine Idee warum es vom Excel aus nicht funktioniert? bg Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasTeoma Mitglied Konstrukteur

 Beiträge: 27 Registriert: 13.03.2015 Win7 Enterprise 64Bit Intel Xeon CPU E5-1620 3,6GHz 32GB RAM
|
erstellt am: 21. Dez. 2020 07:44 <-- editieren / zitieren --> Unities abgeben:         
Habs geschafft!! habe productDocument1 zu partDocument1 geändert. hier der Code(als excel makro): Sub Paint() Dim s1 As String Dim spabench As SPAWorkbench Dim mymeas As Measurable Dim ref1 As Reference Dim myans As Double Dim InputObjectType(0)
s1 = Worksheets("Sheet1").Range("a1") 'MsgBox s1 Set CATIA = GetObject(, "CATIA.Application") Set partDocument1 = CATIA.ActiveDocument Set Selection1 = partDocument1.Selection
Selection1.search "(Name=" & s1 & " - 'Generative Shape Design'.'Geometrical Set');all" Set ref1 = Selection1.Item(1).Reference Set spabench = partDocument1.GetWorkbench("SPAWorkbench") Set mymeas = spabench.GetMeasurable(ref1) myans = mymeas.Area
Worksheets("Sheet1").Range("b1") = myans End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasTeoma Mitglied Konstrukteur

 Beiträge: 27 Registriert: 13.03.2015 Win7 Enterprise 64Bit Intel Xeon CPU E5-1620 3,6GHz 32GB RAM
|
erstellt am: 12. Jan. 2021 10:51 <-- editieren / zitieren --> Unities abgeben:         
Hallo nochmal, ich möchte dieses makro nun auch zum befüllen einer excel textbox verwenden - ohne suchfunktion sonder mit select. unten mein quellcode, bei ref1= hängt sich das ganze auf --> kein Objekt gefunden, ref1 bleibt leer. im catia scheint es aber noch so als ob ich die FACE selektieren kann.. bitte um kurze hilfe dazu. Danke! Private Sub CommandButton10_Click() Set CATIA = GetObject(, "CATIA.Application") Set partDocument1 = CATIA.ActiveDocument Dim SelectionType(0) SelectionType(0) = "Face" Dim spabench As SPAWorkbench Dim mymeas As Measurable Dim ref1 As Reference Dim myans As Double MySel.Clear AppActivate "CATIA" Selection1 = MySel.SelectElement2(SelectionType, "Fläche wählen", True) If Selection1 <> "Normal" Then MsgBox "Fehler bei der Auswahl des Objektes!", vbCritical, "Abbruch" Exit Sub End If Set ref1 = Selection1.Item(1).Reference Set spabench = partDocument1.GetWorkbench("SPAWorkbench") Set mymeas = spabench.GetMeasurable(ref1) myans = mymeas.Area TextBox9.Value = myans AppActivate "AVD_concept_v3.xlsm" 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: 12. Jan. 2021 11:01 <-- editieren / zitieren --> Unities abgeben:          Nur für ThomasTeoma
Servus SelectElement2 liefert dir nicht als Rückgabewert sie selektierten Elemente zurück, sondern diese sind weiter in deiner Selection (MySel). Also Selection1MySel.Item(1).Reference verwenden. Gruß Bernd PS: Ist bei dir MySel global definiert/zugewiesen? ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasTeoma Mitglied Konstrukteur

 Beiträge: 27 Registriert: 13.03.2015 Win7 Enterprise 64Bit Intel Xeon CPU E5-1620 3,6GHz 32GB RAM
|
erstellt am: 12. Jan. 2021 11:12 <-- editieren / zitieren --> Unities abgeben:         
Danke für die rasche Rückmeldung, klappt jetzt!  nur das zurückspringen im Excel hängt sich jetzt auf, das ging gestern noch  pzgl. mySel - das ist beim herumspielen vorm Forums-Beitrag erstellen herausgeflogen, ab vorhin gleich wieder rein gewandert  danke Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |