iCAx开思网

标题: 孤立显示有装配关系对象的宏 [打印本页]

作者: panliang9    时间: 2014-6-13 15:10
标题: 孤立显示有装配关系对象的宏
装配中发生错误经常需要调整,在层次很多的情况下,针对某个装配关系,很难选定有关系的两个对象进行调整。

我搜到国外SW论坛,有人针对这个问题开发了相应的只显示宏,国外原贴在此https://forum.solidworks.com/thread/24079

按照贴子里的宏的描述,选定一个装配关系,运行这个宏,即可将有关系的两个对象孤立显示

现在的问题是,我的SW2007无法使用这个宏,
软件显示:
运行时错误“91”,对象变量或with block变量未设置!

我将宏贴上来,不知道是我的SW2007有问题,还是不支持2007版本,还是什么问题,大家帮我看一下!
作者: gt.adan    时间: 2014-6-13 16:10
我也是一樣的情況 (2010)
作者: panliang9    时间: 2014-6-13 16:39
那是怎么一回事呢,进入调试,似乎在宏的最后一句出了问题:
——————————————————————————
Sub EndIM()
Cfg.ApplyDisplayState nDisp
Cfg.DeleteDisplayState "IsoMateTemp"
Model.ViewZoomtofit2
End Sub
——————————————————————————
我不懂VBA,大概猜测这个宏需要建立一个临时的名叫IsoMateTemp的显示状态,但我的软件不让它建立还是怎么的!

也许是这个宏需要系统的某一个选项还是 参数必须是特定的,不懂,全是猜测!
作者: panliang9    时间: 2014-6-13 16:42
@gt.adan
版主,请一定帮研究一下,这个宏对我很有用呢!
作者: gt.adan    时间: 2014-6-13 16:47
panliang9 发表于 2014-6-13 16:42
@gt.adan
版主,请一定帮研究一下,这个宏对我很有用呢!

盡力傳達~能解決的話不只對前輩有用,其他人也跟著受惠呢!
作者: Francis    时间: 2014-6-13 17:03
宏內有兩段程序, 一段是主程序, 另一段是副程序.
直接運行的話, 可能會運行了副程序導致出錯.

1. 建立圖示按鈕來運行宏.

2. 修改內容, 不以SUB作為副程序, 用Function代替, 改法如下, 即可直接運行也不成問題.
Sub EndIM()>>>>>>Function EndIM()
作者: gt.adan    时间: 2014-6-13 18:30
Francis 发表于 2014-6-13 17:03
宏內有兩段程序, 一段是主程序, 另一段是副程序.
直接運行的話, 可能會運行了副程序導致出錯.

悶大太給力了~謝謝您。可是怎麼會這麼慢…><

[attach]1200819[/attach]

作者: gt.adan    时间: 2014-6-13 18:41
可以了~原帖的討論裡有說到更改了一下宏的內容,似乎變得更快了
建議大家下載第二個檔案:IsoMate Modified ,然後按悶老大的方法設置或修改即可。
效果如下:

[attach]1200820[/attach]

作者: ryouss    时间: 2014-6-13 21:17
謝謝分享
2012 SP4 64位元
執行 " IsoMate.swp "  OR  " IsoMate Modified.swp  " 如下皆正常

[attach]1200821[/attach]

作者: panliang9    时间: 2014-6-13 22:34
太好了,用手机上的论坛,闷大终于出手了,闷大能不能亲手改一下宏,再传上来,我真是这方面的白吃,或者谁帮忙照闷大的想法改了帮忙传上来!

我真是一点都不会弄呢,惭愧!
作者: gt.adan    时间: 2014-6-14 00:28
本帖最后由 gt.adan 于 2014-6-14 00:44 编辑
panliang9 发表于 2014-6-13 22:34
太好了,用手机上的论坛,闷大终于出手了,闷大能不能亲手改一下宏,再传上来,我真是这方面的白吃,或者谁 ...

前輩,按悶大六樓的方式去修改就可以了,不用一定要指定悶大呀~
就是把sub改成Function,然後關閉程式重啟再運行一次就可以了。
您動手試下吧~
作者: panliang9    时间: 2014-6-14 08:26
gt.adan 发表于 2014-6-14 00:28
前輩,按悶大六樓的方式去修改就可以了,不用一定要指定悶大呀~
就是把sub改成Function,然後關閉程式重 ...

谢谢gt.adan版主,今天休息在家,真想现在就跑去办公室试一下!
作者: ryouss    时间: 2014-6-14 10:09
panliang9 发表于 2014-6-14 08:26
谢谢gt.adan版主,今天休息在家,真想现在就跑去办公室试一下!

依悶大指導,修改如下,在2012測試正常,
但手上沒2007版可試!

'Sub EndIM()
'Cfg.ApplyDisplayState nDisp
'Cfg.DeleteDisplayState "IsoMateTemp"
'Model.ViewZoomtofit2
'Set cMateComps = Nothing
'End Sub

'如上 Sub EndIM() 副程式改用" Function " 可適用 2007 版
Function EndIM()
Cfg.ApplyDisplayState nDisp
Cfg.DeleteDisplayState "IsoMateTemp"
Model.ViewZoomtofit2
Set cMateComps = Nothing
End Function


作者: luohh886    时间: 2014-6-15 21:54
谢谢分享!

作者: 臭臉翔    时间: 2014-6-16 10:44
我也成功了!

謝謝樓主分享,悶老大教學,丹大、梁兄指導細節。
作者: chennaiqian    时间: 2017-6-27 21:33
这个宏对我很有用
作者: 人穷貌丑    时间: 2017-6-30 18:39
谢谢分享
作者: chaomogu    时间: 2018-8-10 14:53
特来学习
作者: qxzch    时间: 2018-8-10 19:44
这个宏好!顶起来
作者: a8012024    时间: 2018-8-15 06:55
谢谢分享
作者: liupn    时间: 2018-10-22 14:52
我把两个下载下来,两个都不行。按修改的方法改了之后也不行。

作者: jyzas    时间: 2019-9-6 17:23
谢谢楼主分享。。。。。。




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3