Configuratie van macro-eigenschappen

Goedenavond

 

Ik ben op zoek naar een macro die de SOLIDWORKS-eigenschappen van een configuratie zou bijwerken.

Momenteel gebruik ik deze twee regels code om de eigenschappen bij te werken, maar de update wordt gedaan op het document en niet op een opgegeven configuratie.

 

bRet = swmodel. DeleteCustomInfo2("", "ma_propriété")

bRet = swmodel. AddCustomInfo3("", "ma_propriété", swCustomInfoText, "hier de waarde van het onroerend goed")

 

 

Heeft u mij informatie over dit onderwerp?

 

Bij voorbaat dank

 

 

Sylvain

 

 

 

 

 

 

 

2 likes
Goedenavond Ik raad je aan om naar deze link te kijken http://help.solidworks.com/2013/English/api/swdocmgrapi/get_configuration_information_example_vbnet.htm

Met het risico een beetje "zwaar" te zijn, waarom gebruik je dan niet Smartproperties (Axemble-hulpprogramma te koop op Lynkoa) in plaats van macro's uit te voeren (persoonlijk beheers ik het niet, daarom !!).

 

Voor mensen die macro's niet onder de knie hebben, is dit soort hulpprogramma's nog steeds het beste wat we doen, toch?

 

Ter informatie, ik krijg geen cent op de verkoop van de Smartproperties-bestelwagen!!!!!!!

 

 

http://www.lynkoa.com/store/fr/tools-et-macros/utilitaire-smartproperties.html

 

4 likes

@flegendre

Het is waar dat smartproperties deze functie vervult, maar het is complex omdat het meer  doet

Hallo

 

U moet de CustomPropertyManager-api  gebruiken waar u de naam van de configuratie die moet worden gewijzigd "" opgeeft voor aangepaste eigenschappen.

 

Vervolgens hebt u op het object de API's Toevoegen, Ophalen, Instellen en Verwijderen om ze te maken, op te halen, te wijzigen en te verwijderen:

 

http://help.solidworks.com/2013/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.ICustomPropertyManager_members.html

 

@Lucas Prieur : uw link is de API die u moet gebruiken als het document is gesloten

 

Voorbeeld:

 

Optie Expliciete

Dim swApp als SldWorks.SldWorks

Dim swModel als ModelDoc2

Dim swModelDocExt als ModelDocExtension

Dim swCustProp als CustomPropertyManager

Dim val als snaar

Dim valout als snaar

Dim bool als Booleaanse

 

Sub hoofd()

 

Stel swApp = Toepassing.SldWorks in

Stel swModel = swApp in. ActiveDoc

Stel swModelDocExt = swModel in. Extensie

' Haal de aangepaste eigenschapsgegevens op

 

Stel swCustProp = swModelDocExt. CustomPropertyManager("Configuratienaam")

 

bool = swCustProp. Get4("Property_Name", Onwaar, val, valout)

 

Debug.Print "Waarde: " & val

Debug.Print "Geëvalueerde waarde: " & valout Debug.Print "Up-to-date data: " & bool

 

Einde Sub

7 likes

Hallo

 

Bedankt voor die antwoorden, ik zal ernaar kijken.

Wat betreft SMARTPROPERTIES, ik gebruik het. Ik heb zelfs een knop in de SMARTPROPERTIES die een macro lanet met een SQL-query die naar het ERP verwijst.

Uit de waardes van een eigenschap haal ik enkele parameters uit het ERP om deze weer in de SOLIDWORKS-eigenschappen te zetten.

 

Ik hou jullie op de hoogte

 

Bedankt

 

Sylvain

 

 

2 likes

Hallo

Hier is een voorbeeld dat het antwoord van prossignol compleet maakt

 

Ik gebruik deze macro om eigenschappen in alle onderdeel- en assemblageconfiguraties te verwijderen:

 

Optie Expliciete
    Dim swApp               als SldWorks.SldWorks
    Dim swModel             als SldWorks.ModelDoc2
    Dim swModelDocExt       als SldWorks.ModelDocExtension
    Dim swConfig            als SldWorks.Configuration
    Dim swCustPropMgr       As SldWorks.CustomPropertyManager
    Zon i                   Zo lang
    Dim vConfName           als variant
    Dim valOut              als snaar
    
Openbare Enum swDocumentTypes_e
    swDocNONE = 0       '  Vroeger TYPE_NONE
    swDocPART = 1       '  Vroeger TYPE_PART
    swDocASSEMBLY = 2   '  Vroeger TYPE_ASSEMBLY
    swDocDRAWING = 3    '  Vroeger TYPE_DRAWING
    Einde Enum

Sub hoofd()
    
    Stel swApp = Toepassing.SldWorks in
    Stel swModel = swApp.ActiveDoc in
    
  'Eigenschappen verwijderd in het tabblad Configuratiespecifiek
  Als swModel.GetType <> swDocDRAWING Dan
    vConfName = swModel.GetConfigurationNames
    Voor i = 0 TB UBound(vConfName)
        Set swConfig = swModel.GetConfigurationByName(vConfName(i))
        'Debug.Print'  Configuratie = ' & vConfName(i)
        Stel swCustPropMgr in = swConfig.CustomPropertyManager
        
        swCustPropMgr.Verwijder "Auteur"
        swCustPropMgr.Verwijder "Project"
        swCustPropMgr.Verwijder "Status"
        swCustPropMgr.Verwijder "Nummer"
 
   volgende i
 Einde als
 
Einde Sub

2 likes

Voor minimale aanpassing van uw code

Geef gewoon de naam van de configuratie op in plaats van het lege veld

 

bRet = swmodel. DeleteCustomInfo2("Configuratienaam", "ma_propriété")

bRet = swmodel. AddCustomInfo3("Configuratienaam", "ma_propriété", swCustomInfoText, "hier is de waarde van de eigenschap")

 

Maar het is raadzaam om de reactie van prossignol door te nemen

8 likes

Is het je gelukt om je macro bij te werken???

1 like

 Hallo allemaal,

 

Dank u voor uw antwoorden die zojuist het probleem hebben opgelost.

 

 

Sylvain