| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
 | Rohrleitungen in Maschinen und Anlagen mit Smap3D Plant Design & SOLIDWORKS, ein Webinar am 23.05.2025
|
Autor
|
Thema: Eigenschaften Auslesen (1935 / mal gelesen)
|
Zega Mitglied

 Beiträge: 44 Registriert: 19.07.2016 Hardware -Intel Xeon W3550 -Nvidia Quadro 2000 -12GB RAM Software -Windows 7 Professional -SolidWorks 2016 SP4.0 -Office 2013
|
erstellt am: 01. Aug. 2016 09:21 <-- editieren / zitieren --> Unities abgeben:         
Guten Morgen, da ich schon lange nichts mehr mit Makros gemacht habe und jetzt irgendwie auf dem Schlauch stehe  hoffe und glaube ich auch das ihr mir sehr leicht weiterhelfen könnt. Ich hab mir vor einiger Zeit mithilfe eines Makros von Stefan Berlitz ein Makro für meinen Anwendungszweck gebastelt. Da ich da nun noch 2 Features hinzufügen möchte brauch ich eure Hilfe. Wie im Bild zu sehen ist gibt es dort den Button "Name lesen" und "lesen". Bei "Name lesen" hätte ich gerne das er mir den aktuellen Dokumentenname in die Text Box einträgt. (Text Box Name wäre ben_txt) Bei "lesen" hätte ich gerne, das er mir bei Belchteilen die Dicke des aktuellen Teils in die Text Box enträgt. (Text Box Name wäre hier rh_txt) Danke schonmal für eure Hilfe! Gruß ------------------ Rechtschreibfehler dürfen behalten werden  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau

 Beiträge: 2800 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 01. Aug. 2016 10:46 <-- editieren / zitieren --> Unities abgeben:          Nur für Zega
Hallo Zega, der erste Wunsch wird nicht das Problem darstellen, sollte mit folgender Zeile erledigt sein.
Code: ben_txt.text = swModelDoc.GetTitle
Der Zweite wunsch könnte da schon etwas aufwendiger sein. Erst mal schauen ob ein Blechkörper vorhanden ist, GetBodies2 Method (IPartDoc) auf swSheetBody prüfen. Wenn dies der Fall ist dann könntest du über eine Feature Traverse das erste Blech-Feature suchen und dann mit dem ISheetMetalFeatureData Interface die Thickness Property auslesen. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Zega Mitglied

 Beiträge: 44 Registriert: 19.07.2016 Hardware -Intel Xeon W3550 -Nvidia Quadro 2000 -12GB RAM Software -Windows 7 Professional -SolidWorks 2016 SP4.0 -Office 2013
|
erstellt am: 01. Aug. 2016 14:03 <-- editieren / zitieren --> Unities abgeben:         
Danke für deine schnelle Hilfe! Allerdings bekomm ich eine Fehlermeldung die ich als Bild angehängt habe. Hab ich was vergessen? Das mit der Blechdicke lass ich dann glaub ich lieber wenn ich das nichtmal hinbekomm Ok hat sich erledigt habs hinbekommen ------------------ Rechtschreibfehler dürfen behalten werden  [Diese Nachricht wurde von Zega am 01. Aug. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nahe Ehrenmitglied
    
 Beiträge: 1790 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 01. Aug. 2016 14:54 <-- editieren / zitieren --> Unities abgeben:          Nur für Zega
ich vermute mal, dass Dein Modell nicht an "swModelDoc" hängt, sondern an einer Variable mit einem anderen Namen. Ohne den Code zu sehen ist das ein wenig schwierig. ------------------ Grüße Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Zega Mitglied

 Beiträge: 44 Registriert: 19.07.2016 Hardware -Intel Xeon W3550 -Nvidia Quadro 2000 -12GB RAM Software -Windows 7 Professional -SolidWorks 2016 SP4.0 -Office 2013
|
erstellt am: 01. Aug. 2016 15:13 <-- editieren / zitieren --> Unities abgeben:         
So hier die Lösung mit abschneiden des ".SLDPRT" am Ende. Vielleicht hilft es einem anderen ja auch. Das Makro ließt den Dateinamen bei betätigung des Buttons "Nameauslesen" aus und schreibt ihn in die Text Box ben_txt. Das mit dem Blech wird glaub ich etwas komplizierter oder hat da jemand eine Idee? Gruß ------------------ Rechtschreibfehler dürfen behalten werden  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau

 Beiträge: 2800 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 01. Aug. 2016 15:14 <-- editieren / zitieren --> Unities abgeben:          Nur für Zega
Hallo Zega, Code: Option ExplicitDim swApp As SldWorks.SldWorks Dim swModelDoc As ModelDoc2 Dim swFeatMgr As FeatureManager Dim swFeat As Feature Dim vFeat As Variant Dim swFeatDef As SheetMetalFeatureData Dim swPart As PartDoc Dim swBody As Body2 Dim vBodies As Variant Dim i As Integer Sub main()
Set swApp = Application.SldWorks Set swModelDoc = swApp.ActiveDoc Set swPart = swModelDoc vBodies = swPart.GetBodies2(-1, False) 'Alle Bodies in Arry einlessen If LBound(vBodies) <> 0 Then 'Prüfen ob nur ein Body vorhanden 'Debug.Print "Teil ist ein MultiBody-Part" Else
Set swBody = vBodies(0) If swBody.IsSheetMetal = False Then 'Prüfen ob der Body auch ein Blechteil ist 'Debug.Print "Teil ist kein Blechteil" Else Set swFeatMgr = swModelDoc.FeatureManager 'Feature in Arry einlessen vFeat = swFeatMgr.GetFeatures(True) For i = 0 To UBound(vFeat) Select Case vFeat(i).GetTypeName2 'Feature prüfen bis der Typ "ShettMetal" ist Case "SheetMetal" Set swFeat = vFeat(i) Set swFeatDef = swFeat.GetDefinition 'Definition zum Feature holen rh_txt.text = swFeatDef.Thickness 'Dicke auslesen Case Else 'Debug.Print "Kein Blechfeature weiter mit nächstem Feature" End Select Next i End If End If End Sub
Hier mal ein möglicher Code für die zweite Baustelle  Die Select Case kann man auch durch eine einfache If ersetzten aber wollte die Select Case einfach mal ausprobieren . Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete  [Diese Nachricht wurde von bk.sc am 01. Aug. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |