Hallo!
Ik ben bezig met een macro om onder andere mijn nieuwe eigenschapsformulieren toe te passen op oude bestanden die nog steeds de oude gebruiken.
Ik zou graag willen weten of je zou weten hoe je de .asmprp-, .drwprp- en .prtprp-bestanden kunt krijgen en ze kunt toepassen op een asm, drw of prt met een macro.
Bij voorbaat dank als je een voorsprong hebt.
Fijne dag
Zonder te controleren, vond ik dit:
sub main()
application.sldworks.activedoc.extension.custompropertybuildertemplate(false) = "whatever.prtprp"
end sub
https://help.solidworks.com/2020/english/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IModelDocExtension~CustomPropertyBuilderTemplate.html?verRedirect=1
Lente:
https://www.cadforum.net/viewtopic.php?t=26
Hallo
Dank je wel 2. Aan Damien voor het idee en Sdadenis voor de oplossing.
Bijgevoegd is mijn macro met bestandstypetest.
Fijne dag.
appliquer_formulaires_de_proprietes.swp
Bedankt, voor de leads!
Ik heb iets bedacht dat lijkt te werken. Het is zeker niet perfect of geoptimaliseerd, ik ben net begonnen...
Dim swApp als object
Dim swModel als SldWorks.ModelDoc2
Sub hoofd()
Stel swApp = Toepassing.SldWorks in
Stel swModel = swApp.ActiveDoc in
• Bepaalt of een document wordt geopend in SolidWorks
Als swModel niets is, dan
MsgBox "Je hebt een open document nodig om deze functie te gebruiken!", vbInformation, "New MasqueMarking "
' Controleert of het geopende document een document is
ElseIf Application.SldWorks.ActiveDoc.GetType = swDocPART Dan
' Controleer of het juiste markeringsmasker al is aangebracht
Als niet Application.SldWorks.ActiveDoc.Extension.CustomPropertyBuilderTemplate(False) = "Masque_marquage_PRT.prtprp" dan
Breng het juiste markeringsmasker aan
Application.SldWorks.ActiveDoc.Extension.CustomPropertyBuilderTemplate(False) = "Masque_marquage_PRT.prtprp"
Einde als
' Bepaalt of het geopende document een assembly is
ElseIf Application.SldWorks.ActiveDoc.GetType = swDocASSEMBLY Dan
' Controleer of het juiste markeringsmasker al is aangebracht
Als niet Application.SldWorks.ActiveDoc.Extension.CustomPropertyBuilderTemplate(False) = "Masque_marquage_ASM.asmprp" dan
Breng het juiste markeringsmasker aan
Application.SldWorks.ActiveDoc.Extension.CustomPropertyBuilderTemplate(False) = "Masque_marquage_ASM.asmprp"
Einde als
' Bepaalt of het geopende document een tekening is
ElseIf Application.SldWorks.ActiveDoc.GetType = swDocDRAWING Dan
' Controleer of het juiste markeringsmasker al is aangebracht
Als niet Application.SldWorks.ActiveDoc.Extension.CustomPropertyBuilderTemplate(False) = "Masque_marquage_DRW.drwprp" dan
Breng het juiste markeringsmasker aan
Application.SldWorks.ActiveDoc.Extension.CustomPropertyBuilderTemplate(False) = "Masque_marquage_DRW.drwprp"
Einde als
Einde als
Einde Sub
Voor een 1e ontwikkelaar lijkt het me redelijk goed en redelijk goed geoptimaliseerd, aangezien je rekening hebt gehouden met de foutafhandeling.
Het moet inderdaad functioneel zijn, meer dan in de loop van de tijd te worden getest.