欢迎光临
我们一直在努力

solidworks二次开发-04-修改数据-.NET教程,Asp.Net开发

建站超值云服务器,限时71元/月

solidworks二次开发-04-修改数据
上次已经可以访问特征的各参数了,今天我们来修改它:

要修改前面的步骤不能少,当我们已经可以读取一些特征时,我们就可以给他设定一些值。当然有时需要调用特定的参数。solidworks是ole和com的,所以要习惯这样。

在修改完特征后需要调用函数modifydefinition()来实现变化。

我们给一个例子,这个例子比前面的都要全面,它有很好的容错引导机制,可以直接拿来成为一个稳定的宏程序。

this example doubles the length of the base extrude.这个例子将拉伸凸台的长度增加一倍

 

dim swapp as sldworks.sldworks

dim model as modeldoc2

dim component as component2

dim curfeature as feature

dim isgood as boolean

will become an extrudefeaturedata object

dim featdata as object

dim depth as double

dim selmgr as selectionmgr

 

 

sub doublebe()

}}–>    }}–>set swapp = createobject("sldworks.application")

}}–>    }}–>set model = swapp.activedoc

}}–>    }}–> make sure that the active document is a part

}}–>    }}–>if model.gettype <> swdocpart and model.gettype <> swdocassembly then

‘这里的swdocpart 、swdocassembly 我的环境没有通过。我使用msgbox model.gettype  的笨办法得到整数为1和2 

}}–>        }}–>msg = "only allowed on parts or assemblies" define message

}}–>        }}–>style = vbokonly ok button only

}}–>        }}–>title = "error" define title

}}–>        }}–>call msgbox(msg, style, title) display error message

}}–>        }}–>exit sub exit this program

}}–>    }}–>end if

}}–>    

}}–>

}}–>    }}–> get the selection manager

}}–>    }}–>set selmgr = model.selectionmanager

}}–>    

}}–>

}}–>    }}–> get the selected object (first in the group if there are more than one)

}}–>    }}–> note that at this point curfeature is just a feature object

}}–>    }}–>set curfeature = selmgr.getselectedobject3(1)

}}–>    }}–>if curfeature is nothing then

}}–>        }}–> tell the user that nothing is selected

}}–>        }}–>swapp.sendmsgtouser2 "please select the base-extrude", swmbwarning, swmbok

}}–>        }}–>exit sub

}}–>    }}–>end if

 

}}–>    }}–> check the features type name

}}–>    }}–> make sure it is an extrusion

}}–>    }}–>if not curfeature.gettypename = swtnextrusion then  

’在这里使用swtnextrusion我的环境没有通过,我改成了extrusion才ok

}}–>        }}–>swapp.sendmsgtouser2 "please select the base-extrude", swmbwarning, swmbok

}}–>        }}–>exit sub

}}–>    }}–>end if

 

}}–>    }}–> get the extrusions feature data

}}–>    }}–>set featdata = curfeature.getdefinition

}}–>           

}}–>

}}–>   }}–> get the access selections for the feature data

}}–>   }}–> note that component is null when accessing the selections of a standalone part. }}–> }}–>if we were calling accessselections from within an assembly, then model would refer to the top-level document in the assembly and component would refer to the actual part.

}}–>    }}–>isgood = featdata.accessselections(model, component)

}}–>            

}}–>

}}–>    }}–> inform the user of an error

}}–>    }}–>if not isgood then

}}–>        }}–>swapp.sendmsgtouser2 "unable to obtain access selections", swmbwarning, swmbok

}}–>        }}–>exit sub

}}–>    }}–>end if

}}–>    

}}–>

}}–>    }}–> make sure the user has selected the base extrude

}}–>    }}–>if not featdata.isbaseextrude then

}}–>        }}–>swapp.sendmsgtouser2 "please select the base-extrude", swmbwarning, swmbok

}}–>        }}–>featdata.releaseselectionaccess

}}–>        }}–>exit sub

}}–>    }}–>end if

}}–>            

}}–>

}}–>    }}–> change the depth of this extrusion to double its previous depth

}}–>    }}–>depth = featdata.getdepth(true)

}}–>    }}–>featdata.setdepth true, depth * 2

}}–>            

}}–>

}}–>    }}–> implement the changes to the feature

}}–>    }}–>isgood = curfeature.modifydefinition(featdata, model, component)

}}–>            

}}–>

}}–>    }}–> if the modify definition failed

}}–>    }}–>if not isgood then

}}–>        }}–>swapp.sendmsgtouser2 "unable to modify feature data", swmbwarning, swmbok

}}–>        }}–> release the accessselections

}}–>        }}–>featdata.releaseselectionaccess

}}–>    }}–>end if

}}–> 

}}–>

end sub

 

如果出现特征出现“退回”状态,我现在还没有找到问题的原因,只能在代码执行到最后调用

    model.save
    model.rebuild

这两个函数来自动更新。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » solidworks二次开发-04-修改数据-.NET教程,Asp.Net开发
分享到: 更多 (0)