| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | |  | SOLIDWORKS PDM Professional im Einsatz bei Wölfle, ein Anwenderbericht
|
Autor
|
Thema: API Skipped Items (1662 mal gelesen)
|
kons92 Mitglied Konstrukteur

 Beiträge: 91 Registriert: 07.12.2009 i920,6GB DDR3,FX3500 SW2011 SP1.0 Win7 64Bit
|
erstellt am: 01. Dez. 2010 20:26 <-- editieren / zitieren --> Unities abgeben:         
Hallo an alle, ich bin gerade dabei ein makro zu schreiben, welches alle zu umgehenden Elemente löscht bei einem Kreismuster. Code:
boolstatus = swModelDocExtension.SelectByID2("Kreismuster1", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)Set swSelectionMgr = swModel.SelectionManager Set swFeature = swSelectionMgr.GetSelectedObject6(1, -1) Set swCircularPatternFeatureData = swFeature.GetDefinition
Bis dahin wird das Feature ausgewählt. Und mit :
Code:
NbrInstances = swCircularPatternFeatureData.GetSkippedItemCount()
Kann ich die Anzahl der zu umgehenden Features auslesen, doch leider weiß ich nicht, wie man nun die Anzahl auf null setzten kann.Ich habe leider nur bei der API Hilfe den folgenden Beitrag gefunden: http://help.solidworks.com/2010/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.ICircularPatternFeatureData~ISetSkippedItemArray.html?format=P Daraufhin war mein Ansatz:
Code:
boolstatus = swCircularPatternFeatureData.ISetSkippedItemArray(0, 0)
Doch leider ist dies nicht richtig. Kann mir jemand helfen. Vielen Dank im voraus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur

 Beiträge: 3743 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 01. Dez. 2010 22:42 <-- editieren / zitieren --> Unities abgeben:          Nur für kons92
Laut der Hilfe wird der zweite Parameter in VB nicht supportet. Er wird aber von der Sub ByRef behandelt. Könntest Du mal versuchen, statt der zweiten Null einfach eine Integer-deklariete Variable zu übergeben? Gruß, Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur

 Beiträge: 3743 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 01. Dez. 2010 22:45 <-- editieren / zitieren --> Unities abgeben:          Nur für kons92
|
kons92 Mitglied Konstrukteur

 Beiträge: 91 Registriert: 07.12.2009 i920,6GB DDR3,FX3500 SW2011 SP1.0 Win7 64Bit
|
erstellt am: 21. Dez. 2010 00:10 <-- editieren / zitieren --> Unities abgeben:         
Hallo leider hatte ich keine Zeit mehr gefunden mich mit dem Script zu beschäftigen, da vor Weihnachten einiges sich bei mir angesammelt hat. Zudem war die EuroMold dazwischen. Ich habe nun einmal probiert den Code zum laufen zu bekommen. Er läuft auch aber leider ändert er nichts, d.h. er läuft bei mir fehlerfrei nur die Skipped-Items setzt er nicht wie gewünscht auf die entsprechenden werte Hier der gesamte Code: Code: Sub main()Dim swApp As Object Dim boolstatus As Boolean Dim swFeature As SldWorks.Feature Dim nbrinstances As Integer Dim swCircularPatternFeatureData As ICircularPatternFeatureData Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc boolstatus = Part.Extension.SelectByID2("Kreismuster1", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0) Set swFeature = Part.SelectionManager.GetSelectedObject6(1, -1) Set swCircularPatternFeatureData = swFeature.GetDefinition nbrinstances = swCircularPatternFeatureData.GetSkippedItemCount() MsgBox (nbrinstances) 'Dim FeatCount As Integer 'Dim ArrayDataIn As Integer
'FeatCount = 0 'ArrayDataIn = 0 'swCircularPatternFeatureData.ISetSkippedItemArray FeatCount, ArrayDataIn swCircularPatternFeatureData.ISetSkippedItemArray 1, 3 End Sub
Wenn ich die auskommentierte Version nehmen mit Integer bekomme ich den Fehler : Argumenttyp ByRef unverträglich Vielleicht hat einer eine Idee, wo der Fehler ist.
Vielen Dank im voraus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |