分享
 
 
 

solidworks二次开发-04-修改数据

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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 feature's 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 Extrusion's 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

这两个函数来自动更新。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有