| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
Autor
|
Thema: Komp.-beschreibung API (2051 mal gelesen)
|
Scoopa Mitglied MB Techniker
 
 Beiträge: 232 Registriert: 26.04.2006 Celsius Workstation / WIN XP / AIP 2008 SP2
|
erstellt am: 28. Sep. 2010 10:28 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen ich würde gerne in den Komponenteneigenschaften gern die darin enthaltene Komponentenbeschreibung (siehe roten Rahmen im Anhang) auslesen. Kennt vielleicht jemand die dazugehörige API-Methode? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 28. Sep. 2010 10:55 <-- editieren / zitieren --> Unities abgeben:          Nur für Scoopa
Hallo Scoopa, als Komponentenbeschreibung wird die Dokumenteigenschaft verwendet, die in den Systemoptionen unter "Benutzerdefinierte Eigenschaft als Komponentenbeschreibung verwendet" angegeben ist (siehe Bild). Diese kannst du mit: %Eigenschaftsname% = SldWorks.GetUserPreferenceStringValue(swCustomPropertyUsedAsComponentDescription) auslesen. Den Wert selbst, liest du anschließend wie jede andere Dokumenteigenschaft aus dem ModelDoc2 der Komponente aus. Zum Beispiel mit ModelDoc2.Extension.CustomPropertyManager.Get(%Eigenschaftsname%) ------------------ Mfg Daniel www.MySldWorks.de - SolidWorks API Snippets Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Scoopa Mitglied MB Techniker
 
 Beiträge: 232 Registriert: 26.04.2006 Celsius Workstation / WIN XP / AIP 2008 SP2
|
erstellt am: 28. Sep. 2010 12:21 <-- editieren / zitieren --> Unities abgeben:         
Hallo tbd vielen Dank für die Antwort. Leider klappt die Ausführung noch nicht bei mir  wo bekomme ich folgenden Wert her: swCustomPropertyUsedAsComponentDescription im Objektkatalog wird angegeben: Function GetUserPreferenceStringValue(UserPreference As Long) As String was oder woher bekomme ich die UserPreference? komischerweise wird es mal als integer und mal als long gefordert? ist sicher ein fehler oder? Code: Visual Basic (Declaration) Function GetUserPreferenceStringValue( _ ByVal UserPreference As Integer _ ) As String Visual Basic (Usage) Copy Code Dim instance As IModelDoc Dim UserPreference As Integer Dim value As String value = instance.GetUserPreferenceStringValue(UserPreference)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 28. Sep. 2010 13:13 <-- editieren / zitieren --> Unities abgeben:          Nur für Scoopa
Hallo Scoopa, swCustomPropertyUsedAsComponentDescription ist Bestandteil der Klasse swconst. Damit du diese verwenden kannst, benötigst du einen Verweis (Extras>Verweise) zur Bibliothek SolidWorks XXXX Constant type Library. Ich habe dir mal ein kleines Makro gebastelt, das dir die Komponentenbeschreibung aus der ersten selektierten Komponente ermittelt:
Code: Dim oSwApp As SldWorks.SldWorks Dim oSwModel_Asm As SldWorks.ModelDoc2 Dim oSwSelMgr As SldWorks.SelectionMgr Dim oSwModel_Com As SldWorks.ModelDoc2 Dim oSwComponent As SldWorks.Component2 Dim sComponentDescriptionValue As String Dim sComponentDescriptionProperty As StringSub main() 'SolidWorks Set oSwApp = Application.SldWorks 'Systemoption auslesen sComponentDescriptionProperty = oSwApp.GetUserPreferenceStringValue( _ swCustomPropertyUsedAsComponentDescription) 'Aktive Baugruppe Set oSwModel_Asm = oSwApp.ActiveDoc 'Selektionsmanager Set oSwSelMgr = oSwModel_Asm.SelectionManager 'Erste selektierte Komponente Set oSwComponent = oSwSelMgr.GetSelectedObjectsComponent3(1, -1) If oSwComponent Is Nothing = False Then 'ModelDoc der Komponente Set oSwModel_Com = oSwComponent.GetModelDoc 'ModelDoc prüfen, wichtig bei z.B. reduziert geladenen Komponenten If oSwModel_Com Is Nothing = False Then 'Dokumenteigenschaft auslesen sComponentDescriptionValue = _ oSwModel_Com.Extension.CustomPropertyManager("").Get( _ sComponentDescriptionProperty) MsgBox sComponentDescriptionValue End If End If End Sub
------------------ Mfg Daniel www.MySldWorks.de - SolidWorks API Snippets Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Scoopa Mitglied MB Techniker
 
 Beiträge: 232 Registriert: 26.04.2006 Celsius Workstation / WIN XP / AIP 2008 SP2
|
erstellt am: 28. Sep. 2010 14:19 <-- editieren / zitieren --> Unities abgeben:         
|