VBA: Algemene persoonlijke eigenschappen en geen configuratie-eigenschappen

Hoi allemaal

Ik beheers VBA niet zo goed en ik pruts een beetje...

Dus ik heb deze macro gemaakt (door hem te kopiëren en mijn eigenschappen toe te voegen), maar ik zou graag willen dat de gemaakte eigenschappen in het tabblad "Aanpassen" worden geplaatst en niet in "Configuratiespecifiek". Kunt u mijn macro corrigeren? Bij voorbaat dank.

Dim swApp als object
Dim swModel als ModelDoc2
Dim config As SldWorks.Configuration
Dim swCustProp als CustomPropertyManager
Dim lRetVal zo lang
Dim myValue0 als tekenreeks
myValue1 dimmen als tekenreeks
Dim myValue2 als tekenreeks
myValue3 dimmen als tekenreeks
Dim myValue4 als tekenreeks

Sub hoofd()
    Stel swApp = Toepassing.SldWorks in
    Stel swModel = swApp.ActiveDoc in
    my0Value = swModel.GetTitle 'We krijgen de bestandsnaam
    myValue1 = Links(mijnWaarde0, 16) 'We krijgen het onderdeelnummer, dus de eerste 16 tekens van de bestandsnaam
    myValue2 = Links(mijnWaarde0, 22) 'We krijgen de eerste 22 tekens van de bestandsnaam
    myValue3 = Right(myValue0, Len(myValue0) - Len(myValue2)) 'We krijgen de Aanduiding laatste tekens van de bestandsnaam - de eerste 22
    myValue4 = Links(myValue0, 13) 'We krijgen het malnummer
    Set config = swModel.GetActiveConfiguration
    Stel cusPropMgr in = config. CustomPropertyManager
    lRetVal = cusPropMgr.Add3("PartNumber", swCustomInfoType_e.swCustomInfoText, myValue1, swCustomPropertyAddOption_e.swCustomPropertyDeleteAndAdd)
    lRetVal = cusPropMgr.Add3("Aanduiding", swCustomInfoType_e.swCustomInfoText, myValue3, swCustomPropertyAddOption_e.swCustomPropertyDeleteAndAdd)
    lRetVal = cusPropMgr.Add3("DocumentSource", swCustomInfoType_e.swCustomInfoText, myValue4, swCustomPropertyAddOption_e.swCustomPropertyDeleteAndAdd)
Einde Sub

 

Als je een goede tutorial hebt om aan te bevelen voor de VBA Solidworks, ben ik er helemaal voor.

Hallo;

Om uw eigenschappen in het tabblad 'Aangepast' te maken (en niet in 'Configuratie'):
Vervang uw lijn:
Stel cusPropMgr in = config. CustomPropertyManager
bij
Stel cusPropMgr in =swModel.Extension.CustomPropertyManager("")

Voor een tutorial: zie hier (in het Engels maar goed uitgelegd)
https://blog.codestack.net/custom-properties-automation
Of als je echt net begint:
https://thecadcoder.com/Solidworks-macro-guide/
zonder de "F1"-toets in de VB-editor te vergeten
Noch de Solidworks API Help


Let op: je code is niet erg lang, maar in de toekomst is het beter om de Code-editor te gebruiken


(in VBscript-modus voor VB-macro's... voor Visual Basic:-)

Vriendelijke groeten

3 likes

Hallo

en meer in het algemeen, geef de voorkeur aan vbNullString in plaats van "". Sneller om te rennen en lichter in het geheugen.

Hallo @guillaume.bruere 

Het antwoord op uw vraag dat het verdient om als oplossing te worden gemarkeerd, is de boodschap van @Maclane , niet de mijne! Bedankt voor het corrigeren voor hem.

Vriendelijke groeten

1 like

Hallo @Sylk, ja, ik wilde de 2 antwoorden goedkeuren, maar er wordt er maar één in aanmerking genomen. Dank u allen.

1 like

Hallo;

Bedankt Sylk , maar omdat ik niet wist hoe ik "vbNullString" moest gebruiken, ben ik bereid om je 1/2 punt terug te geven... ;)
Vriendelijke groeten.

2 likes