Macro om eigenschap toe te voegen

Hallo
Is het mogelijk om een aangepaste eigenschap toe te voegen door middel van een macro, ik heb inderdaad oude delen  van een grote map die geen "MASS"  "SW-Masse@mapiece.SLDPRT" of "DESCRIPTION" "tekst" eigenschappen hebben, het zou sneller zijn om ze toe te voegen door een kleine macro.
Als iemand een begin van een track zou het leuk zijn, ik kon niets vinden op het forum.
Vriendelijke groeten.

 

1 like

Taakplanner: Eigenschap bijwerken

http://help.solidworks.com/2016/french/SolidWorks/sldworks/HIDD_TASK_CUSTOM_PROPS.htm?id=b4a248bb4ed54a87a79966b065a1d4f4#Pg0&ProductType=&ProductName=

 

1 like

Dank je wel Olivier42,
Ja, handig, maar je kunt geen "SW-Masse@" toewijzen, en ik geef er de voorkeur aan om het te doen terwijl ik bezig ben met elk onderdeel dat ik aanpas.

Vriendelijke groeten

 

Hallo

Kijk http://help.solidworks.com/2016/English/api/sldworksapi/Get_Custom_Properties_for_Configuration_Example_VB.htm, er is een voorbeeld van een toevoeging.

Vriendelijke groeten

2 likes

Hallo

als u dit doet terwijl u de onderdelen vervangt; Kopiëren en plakken zou het moeten doen.

1 like

Hallo
Bedankt d.roger voor je zeer interessante punt, na veel sleutelen ben ik erin geslaagd om een macro te maken die werkt! Het probleem is dat ik niet alleen eigenschappen aan de configuratie wil toevoegen, maar ook aan de algemene eigenschappen en hier kan ik dat niet.
Als je me zou kunnen helpen, zou het leuk zijn.
Vriendelijke groeten

Option Explicit

Public Enum swCustomInfoType_e
        swCustomInfoUnknown = 0
        swCustomInfoText = 30
        swCustomInfoDate = 64
        swCustomInfoNumber = 3
        swCustomInfoDouble = 5
        swCustomInfoYesOrNo = 11
End Enum

    Dim swApp               As SldWorks.SldWorks
    Dim swModel             As SldWorks.ModelDoc2
    Dim swConfigMgr         As SldWorks.ConfigurationManager
    Dim swConfig            As SldWorks.Configuration
    Dim swCustPropMgr       As SldWorks.CustomPropertyManager
    Dim retVal              As Long
    Dim noma                As String
    Dim nomb                As String
    Dim nom                 As String
    Dim Att                As String
  

Sub main()

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swConfigMgr = swModel.ConfigurationManager
    Set swConfig = swConfigMgr.ActiveConfiguration
    noma = swModel.GetTitle
    nom = noma & """"
    nomb = """"
    Att = swModel.GetCustomInfoValue("", "DESIGNATION")
    Set swCustPropMgr = swConfig.CustomPropertyManager
       ' Add custom property MASSE ET DESIGNATION to this configuration
    retVal = swCustPropMgr.Add2("MASSE", swCustomInfoText, nomb & "SW-Mass@" & nom)
    retVal = swCustPropMgr.Add2("DESCRIPTION", swCustomInfoText, Att)
End Sub

 

Hallo

U moet de configuratienaam niet in de opties swCustPropMgr.Add2 plaatsen. Als je de naam conf leeg laat, gaat het naar de algemene eigenschappen.

Hallo

Hier is een klein voorbeeld waarmee u alle configuraties kunt invullen, inclusief algemene eigenschappen:

Sub main()

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As ModelDocExtension
Dim configNames()  As String
Dim configName As String
Dim swConfig As SldWorks.Configuration
Dim cusPropMgr As SldWorks.CustomPropertyManager
Dim i As Long
Dim retVal As Long

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
   
configNames = swModel.GetConfigurationNames
For i = 0 To UBound(configNames)
    configName = configNames(i)
    Set swConfig = swModel.GetConfigurationByName(configName)
    Set swCustPropMgr = swConfig.CustomPropertyManager
    retVal = swCustPropMgr.Add2("MASSE", swCustomInfoText, """SW-Mass@@Défaut@Plaque-2.SLDPRT""")
    retVal = swCustPropMgr.Add2("DESCRIPTION", swCustomInfoText, "Ma désignation")
Next i

Set swModelDocExt = swModel.Extension
Set swCustPropMgr = swModelDocExt.CustomPropertyManager("")
retVal = swCustPropMgr.Add2("MASSE", swCustomInfoText, """SW-Mass@@Défaut@Plaque-2.SLDPRT""")
retVal = swCustPropMgr.Add2("DESCRIPTION", swCustomInfoText, "Ma désignation")

End Sub

Vriendelijke groeten

4 likes

Dank je wel d.roger, ik probeer het vanavond...

Oprecht

Heel erg bedankt d.roger, het werkt perfect!!

Top bijdrager in macro!

Oprecht

1 like

Hallo

Ik ben terug bij de aanklacht omdat het me lukt om de "AANDUIDING" info op te halen in de algemene eigenschappen:

Att = swModel.GetCustomInfoValue("", "DESIGNATION")


Maar wat is het commando om deze informatie op te halen als de eigenschap "DESIGNATION" specifiek in een (standaard) configuratie staat.

Bedankt voor je hulp...

Cyril.f informeerde me. Bedankt