Konfiguracja właściwości makra

Dobry wieczór

 

Szukam makra, które zaktualizuje właściwości SOLIDWORKS konfiguracji.

Obecnie używam tych dwóch wierszy kodu do aktualizacji właściwości, ale aktualizacja jest wykonywana w dokumencie, a nie w określonej konfiguracji.

 

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

bRet = swmodel. AddCustomInfo3("", "ma_propriété", swCustomInfoText, "tutaj wartość właściwości")

 

 

Czy masz jakieś informacje, które mógłbyś mi udzielić na ten temat?

 

Z góry dziękuję

 

 

Sylvain (Sylvain)

 

 

 

 

 

 

 

2 polubienia
Dobry wieczór Radzę zajrzeć na ten link http://help.solidworks.com/2013/English/api/swdocmgrapi/get_configuration_information_example_vbnet.htm

Ryzykując, że będę nieco "ciężki", dlaczego nie skorzystać ze Smartproperties (narzędzie Axemble na sprzedaż na Lynkoa) zamiast uruchamiać makra (osobiście nie opanowuję, dlatego !!).

 

Dla osób, które nie opanowały programowania makr, ten typ narzędzia jest nadal najlepszą rzeczą, jaką robimy, prawda?

 

Dla twojej informacji, nie dostaję ani grosza na sprzedaży furgonetki Smartproperties!!!!!!!

 

 

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

 

4 polubienia

@flegendre

Prawdą jest, że smartproperties spełnia tę funkcję, ale jest to złożone, ponieważ robi więcej  

Witam

 

Należy użyć interfejsu API CustomPropertyManager , w którym należy określić nazwę konfiguracji, która ma być modyfikowana, "" dla właściwości niestandardowych.

 

Następnie w obiekcie masz interfejsy API Dodaj, Pobierz, Ustaw i Usuń do ich tworzenia, pobierania, modyfikowania i usuwania:

 

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

 

@Lucas Prieur : Twój link to interfejs API, którego należy użyć, jeśli dokument zostanie zamknięty

 

Przykład:

 

Opcja jawna

Dim swApp jako SldWorks.SldWorks

Dim swModel As ModelDoc2

Dim swModelDocExt As ModelDocExtension

Dim swCustProp As CustomPropertyManager

Dim val As String

Dim valout As String

Dim bool As wartość logiczna

 

Sub main()

 

Ustaw swApp = Application.SldWorks

Ustaw swModel = swApp. Plik ActiveDoc

Ustaw swModelDocExt = swModel. Rozszerzenie

' Pobieranie danych właściwości niestandardowej

 

Ustaw swCustProp = swModelDocExt. CustomPropertyManager("Nazwa konfiguracji")

 

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

 

Debug.Print "Wartość: " & val

Debug.Print "Obliczona wartość: " & valout Debug.Print "Aktualne dane: " & bool

 

Koniec subwoofera

7 polubień

Witam

 

Dzięki za te odpowiedzi, zajmę się tym.

Jeśli chodzi o SMARTPROPERTIES, używam go. W rzeczywistości mam przycisk w SMARTPROPERTIES, który łączy makro z zapytaniem SQL, które wskazuje na ERP.

Z wartości właściwości pobieram niektóre parametry z ERP, aby umieścić je z powrotem we właściwościach SOLIDWORKS.

 

Będę Cię informować na bieżąco

 

Dziękuję

 

Sylvain powiedział:

 

 

2 polubienia

Witam

Oto przykład, który uzupełnia odpowiedź prossignol

 

Używam tego makra do usuwania właściwości we wszystkich konfiguracjach części i złożeń:

 

Opcja jawna
    Dim swApp               jako SldWorks.SldWorks
    Dim swModel             As SldWorks.ModelDoc2
    Dim swModelDocExt       As SldWorks.ModelDocExtension
    Dim swConfig            jako SldWorks.Configuration
    Dim swCustPropMgr       As SldWorks.CustomPropertyManager
    Słońce i                   tak długo
    Dim vConfName           jako wariant
    Dim valOut              As String (Ciąg znaków
    
Wyliczenie publiczne swDocumentTypes_e
    swDocNONE = 0       '  Kiedyś był TYPE_NONE
    swDocPART = 1       '  Kiedyś był TYPE_PART
    swDocASSEMBLY = 2   '  Kiedyś był TYPE_ASSEMBLY
    swDocDRAWING = 3    '  Kiedyś było TYPE_DRAWING
    Wyliczenie końcowe

Sub main()
    
    Ustaw swApp = Application.SldWorks
    Ustaw swModel = swApp.ActiveDoc
    
  'Usunięto właściwości w zakładce Specyficzne dla konfiguracji
  Jeśli swModel.GetType <> swDocDRAWING to
    vConfName = swModel.GetConfigurationNames
    Dla i = 0 TB UBound(vConfName)
        Ustaw swConfig = swModel.GetConfigurationByName(vConfName(i))
        Konfiguracja 'Debug.Print'  = ' & vConfName(i)
        Ustaw swCustPropMgr = swConfig.CustomPropertyManager
        
        swCustPropMgr.Delete "Autor"
        swCustPropMgr.Delete "Projekt"
        swCustPropMgr.Delete "Status"
        swCustPropMgr.Delete "Liczba"
 
   Dalej i
 Zakończ jeżeli:
 
Koniec subwoofera

2 polubienia

Minimalna modyfikacja kodu

Po prostu określ nazwę konfiguracji zamiast pustego pola

 

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

bRet = swmodel. AddCustomInfo3("Nazwa konfiguracji", "ma_propriété", swCustomInfoText, "oto wartość właściwości")

 

Ale wskazane jest, aby przejść przez odpowiedź prossignol

8 polubień

Czy udało Ci się zaktualizować makro???

1 polubienie

 Witam wszystkich,

 

Dziękuję za odpowiedzi, które właśnie rozwiązały problem.

 

 

Sylvain (Sylvain)