ciao, ho trovato questa discussione a seguito di una ricerca.
non sono riuscito a farla funzionare, ho escluso (spero correttamente) il cambio di colore, ma il resto non mi funziona, allego il testo della macro da me modificata, se hai tempo jenuary, puoi darmi un occhio?
ti ringrazio!
'associa colore rosso e 1.5714 (16nicr4)
dim swapp as sldworks.sldworks
dim modeldoc2 as sldworks.modeldoc2
dim swcompmodel as sldworks.modeldoc2
dim swmodel as sldworks.modeldoc2
dim swselmgr as sldworks.selectionmgr
dim swcomp as sldworks.component2
dim vmatprop as variant
dim bret as boolean
dim longstatus as long, longwarnings as long
global const swdocpart = 1
global const swdocasm = 2
dim retvar as variant
sub main()
set swapp = createobject("sldworks.application")
set modeldoc2 = swapp.activedoc
if modeldoc2 is nothing then
msgbox "nessun documento caricato." + chr$(10) + chr$(13) _
+ "carica un file di parte o assieme."
exit sub
end if
filetyp = modeldoc2.gettype
if filetyp = swdocpart then
modeldoc2.materialpropertyvalues = retvar
modeldoc2.editrebuild3
end if
if filetyp = swdocasm then
set swmodel = swapp.activedoc
dim i as integer
dim selcount as integer
set swselmgr = swmodel.selectionmanager
selcount = swselmgr.getselectedobjectcount()
if selcount > 0 then
for i = 1 to swselmgr.getselectedobjectcount()
set swselobj = swselmgr.getselectedobject5(i)
set swcomp = swselmgr.getselectedobjectscomponent2(i)
set swcompmodel = swcomp.getmodeldoc
dim partdoc as sldworks.partdoc
set partdoc = swcomp.getmodeldoc
'cambiare dicitura materiale a seconda dell'esigenza, se serve anche il percorso della libreria
partdoc.setmaterialpropertyname2 "default", "c:\program files\solidworks corp\solidworks\lang\italian\sldmaterials/solidworks materials.sldmat", "aisi 316l"
"vmatprop = swcomp.materialpropertyvalues
if isempty(vmatprop) then
if swcompmodel is nothing then
exit sub
end if
vmatprop = swcompmodel.materialpropertyvalues
end if
retvar = partdoc.materialpropertyvalues
retvar(0) = 1
retvar(1) = 0
retvar(2) = 0
retvar(3) = 1
retvar(4) = 1
retvar(5) = 1
retvar(6) = 0.31
retvar(7) = 0
retvar(8) = 0
partdoc.materialpropertyvalues = retvar"
'"fine commento"
partdoc.save2 true
next
end if
swmodel.clearselection2 true
end if
end sub