SolidWorks机械工程师网——最大的SolidWorks学习平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

好品数字
好品数字
查看: 23460|回复: 71
打印 上一主题 下一主题

求:sw零件或装配体重新上色(随机) 的宏

  [复制链接]

39

主题

372

帖子

3055

金币

传奇

Rank: 8Rank: 8

积分
7711

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

跳转到指定楼层
楼主
 楼主| 发表于 2021-1-19 16:31:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
40金币
因为零件模板有设定特征颜色,这个不能不要,有个别的零件需要用颜色区别开来。零件或装配体自动随机上色的宏,论坛里有。但是上的颜色覆盖不到特征颜色上面,每次都要“从此移除所有零件外观”,然后再随机上色。有没有大神帮忙写一段去掉所有颜色的宏代码,去除所有外观颜色再随机上色,或者只有去除所有外观颜色的也行。

最佳答案

查看完整内容

删除此零件文档中的所有显示状态和外观:Part.RemoveAllDisplayStates 注:只适用于零件,不能用于装配体。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 转播转播 分享教程|习题|模型|技巧 点赞点赞 拍砖拍砖
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

37

主题

989

帖子

1万

金币

版主

Rank: 7Rank: 7Rank: 7Rank: 7

积分
19473

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

沙发
发表于 2021-1-19 16:31:15 | 只看该作者
删除此零件文档中的所有显示状态和外观:Part.RemoveAllDisplayStates
注:只适用于零件,不能用于装配体。
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

12

主题

36

帖子

1192

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1684
QQ
板凳
发表于 2021-1-20 16:57:54 | 只看该作者
顶一下,坐等高手!
SolidWorks机械工程师网
回复

使用道具 举报

0

主题

1

帖子

5

金币

混混

Rank: 1

积分
34

最佳新人

地板
发表于 2021-1-22 10:18:01 | 只看该作者
下载麦迪今日制造。
SolidWorks机械工程师网
回复

使用道具 举报

39

主题

372

帖子

3055

金币

传奇

Rank: 8Rank: 8

积分
7711

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

5#
 楼主| 发表于 2021-1-24 08:02:32 | 只看该作者

   经典案例图书
顶一下,坐等高手。
SolidWorks机械工程师网
回复

使用道具 举报

39

主题

372

帖子

3055

金币

传奇

Rank: 8Rank: 8

积分
7711

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

6#
 楼主| 发表于 2021-1-25 16:21:19 | 只看该作者
Allate 发表于 2021-1-19 16:31
删除此零件文档中的所有显示状态和外观:Part.RemoveAllDisplayStates
注:只适用于零件,不能用于装配体 ...

装配体是不能用这个语句,但是,我在用你发表的那个随机改变颜色宏,装配体中也能改变零件颜色,是你因为历遍装配零件一个个修改颜色,我只要把这条语句加到for语句里面就可以了,也能达到效果!
SolidWorks机械工程师网
回复

使用道具 举报

37

主题

989

帖子

1万

金币

版主

Rank: 7Rank: 7Rank: 7Rank: 7

积分
19473

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

7#
发表于 2021-1-25 16:29:52 | 只看该作者

   经典案例图书
tg000057 发表于 2021-1-25 16:21
装配体是不能用这个语句,但是,我在用你发表的那个随机改变颜色宏,装配体中也能改变零件颜色,是你因为 ...

有用就最好不过了
SolidWorks机械工程师网
回复

使用道具 举报

39

主题

372

帖子

3055

金币

传奇

Rank: 8Rank: 8

积分
7711

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

8#
 楼主| 发表于 2021-1-26 11:06:38 | 只看该作者
借花献佛的把宏贴出来,原贴就是Allate大大的,只是我要的要求是要删除特征颜色后再上色,所以要求有变,还是Allate大大给的语句,增加一条删除此零件文档中的所有显示状态和外观,然后我把它代进去,并加到执行历遍装配体零件上色的语句前,这样零件,和装配体都可以使用了!


补充内容 (2021-1-26 14:26):
文件包放在10楼了。
SolidWorks机械工程师网
回复

使用道具 举报

37

主题

989

帖子

1万

金币

版主

Rank: 7Rank: 7Rank: 7Rank: 7

积分
19473

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

9#
发表于 2021-1-26 13:44:30 | 只看该作者
别这样,我也只是个初学者。
那个随机上色的,之前粗略改制的,非常粗糙,现在重改了一次,有兴趣可以重新下载。
SolidWorks机械工程师网
回复

使用道具 举报

39

主题

372

帖子

3055

金币

传奇

Rank: 8Rank: 8

积分
7711

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

10#
 楼主| 发表于 2021-1-26 14:25:40 | 只看该作者
修改后的包。

随意改变颜色.rar

(9.84 KB, 下载次数: 268

SolidWorks机械工程师网
回复

使用道具 举报

39

主题

372

帖子

3055

金币

传奇

Rank: 8Rank: 8

积分
7711

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

11#
 楼主| 发表于 2021-1-26 14:35:14 | 只看该作者
Allate 发表于 2021-1-26 13:44
别这样,我也只是个初学者。
那个随机上色的,之前粗略改制的,非常粗糙,现在重改了一次,有兴趣可以重新 ...

我才刚开始接触这个东西,所以很多都不懂,全靠都是论坛里学,和自己摸索的,正准备系统的去学习一下。
后面的那个颜色改变宏我刚对比了一下,原理是一样的,只是逻辑方式改变了一下,我也把那条删除颜色的语句加上,完美运行!
SolidWorks机械工程师网
回复

使用道具 举报

39

主题

372

帖子

3055

金币

传奇

Rank: 8Rank: 8

积分
7711

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

12#
 楼主| 发表于 2021-1-30 16:39:14 | 只看该作者
Allate 发表于 2021-1-26 13:44
别这样,我也只是个初学者。
那个随机上色的,之前粗略改制的,非常粗糙,现在重改了一次,有兴趣可以重新 ...

你好,这个随机上色宏出了点问题,能帮忙看一下吗?

根据你的提示,我把  删除显示状态的外观  的那句加上去后,随机上色是运行得没问题,但是,后加的这一句估把之前设置好的材质属性删除,就是变成材质未定义了,这样运行肯定不行的了,有没有其他语句单单是去颜色,不删除材质的?
或者说,有没有语句,在 删除显示状态的外观 之前读取材质,之后再把材质付予上去。
SolidWorks机械工程师网
回复

使用道具 举报

37

主题

989

帖子

1万

金币

版主

Rank: 7Rank: 7Rank: 7Rank: 7

积分
19473

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

13#
发表于 2021-1-30 17:29:59 | 只看该作者
tg000057 发表于 2021-1-30 16:39
你好,这个随机上色宏出了点问题,能帮忙看一下吗?

根据你的提示,我把  删除显示状态的外观  的那句 ...
这样吧,你随便发个零件出来,具体问题具体分析。
SolidWorks机械工程师网
回复

使用道具 举报

39

主题

372

帖子

3055

金币

传奇

Rank: 8Rank: 8

积分
7711

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

14#
 楼主| 发表于 2021-1-31 00:49:07 | 只看该作者
Allate 发表于 2021-1-30 17:29
哦,这样吧,你随便发个零件给我吧,邮箱
这个最好是具体问题具体分析。

刚发了,连同那个 宏一起发了,
零件是用sw2017建设的,运行宏后,设计树那里的材质看似的没变,实际是被删除的了,文件-属性里可以看到,已变成材质未定义了,设计树那里要刷新或重开才会显示材质未定义。

最好有办法,只删除外观,不删除材质。
其次可以,提取当前材质,删除所有显示状态,连同材质删除,再付予刚提取的材质,再更改颜色。
谢谢大大了
SolidWorks机械工程师网
回复

使用道具 举报

37

主题

989

帖子

1万

金币

版主

Rank: 7Rank: 7Rank: 7Rank: 7

积分
19473

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

15#
发表于 2021-1-31 08:46:08 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

不知道你具体的情况,有时候的建议不一定是有效的,或者可以这样一试。

SolidWorks机械工程师网
回复

使用道具 举报

39

主题

372

帖子

3055

金币

传奇

Rank: 8Rank: 8

积分
7711

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

16#
 楼主| 发表于 2021-1-31 12:01:18 | 只看该作者

   经典案例图书
Allate 发表于 2021-1-31 08:46
不知道你具体的情况,有时候的建议不一定是有效的,或者可以这样一试。

看来只能重新写材质,

还想请问你一下有个语句不懂:
写入材质用:swDoc.SetMaterialPropertyName2, “写入配置”,“材质库路径”,“材质名称”
而获取当前材质用这个:swDoc.GetMaterialPropertyName2,
这条要样才能把材质参数获取过来?
SolidWorks机械工程师网
回复

使用道具 举报

39

主题

372

帖子

3055

金币

传奇

Rank: 8Rank: 8

积分
7711

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

17#
 楼主| 发表于 2021-1-31 12:26:52 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

Allate 发表于 2021-1-31 08:46
不知道你具体的情况,有时候的建议不一定是有效的,或者可以这样一试。

Dim configM            As String
Dim libraryM           As String
Dim MaterialM        As String
Dim aM        As String

       ....................


  MaterialM = swDoc.GetMaterialPropertyName2(aM, libraryM)              '获取当前材质名和材质库名
  
         configM = swApp.GetActiveConfigurationName(swDoc.GetPathName)         '获取零件当前配置名
         
         swDoc.RemoveAllDisplayStates                                          '删除所有显示状态和材质
         
         swDoc.SetMaterialPropertyName2 configM, libraryM, MaterialM           '更改当前配置的材质
         swDoc.SetMaterialPropertyName2 "默认", libraryM, MaterialM            '更改默认配置的材质

弄出来了,是这样子的,只是不懂那个aM表达的是什么,好像也没有值。
SolidWorks机械工程师网
回复

使用道具 举报

37

主题

989

帖子

1万

金币

版主

Rank: 7Rank: 7Rank: 7Rank: 7

积分
19473

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

18#
发表于 2021-1-31 13:45:30 | 只看该作者

   经典案例图书
收到你发过来的文件了,测试过,就是要按我截图的那样操作就行。如果你没看懂,没关系,下载附件即可。

注:附件没能解决问题,已经删除。

SolidWorks机械工程师网
回复

使用道具 举报

37

主题

989

帖子

1万

金币

版主

Rank: 7Rank: 7Rank: 7Rank: 7

积分
19473

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

19#
发表于 2021-1-31 13:55:42 | 只看该作者
tg000057 发表于 2021-1-31 12:01
看来只能重新写材质,

还想请问你一下有个语句不懂:

MName=swDoc.GetMaterialPropertyName2(“写入配置”,“材质库路径”)
swDoc.SetMaterialPropertyName2 “写入配置”,“材质库路径”,MName
不过其实不用这么折腾的,就我上面写的办法已经可以解决问题。
SolidWorks机械工程师网
回复

使用道具 举报

39

主题

372

帖子

3055

金币

传奇

Rank: 8Rank: 8

积分
7711

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

20#
 楼主| 发表于 2021-1-31 14:48:06 | 只看该作者
Allate 发表于 2021-1-31 13:45
收到你发过来的文件了,测试过,就是要按我截图的那样操作就行。如果你没看懂,没关系,下载附件即可。

...

这个试过了,和我前面的那效果一样,设计树那里显示有材质(应该是没刷新到),但是属性里面显示未定义,关闭重新打开零件,设计树那里也显示未定义了。
SolidWorks机械工程师网
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭 卷起
关闭 卷起

手机版|小黑屋| GMT+8, 2024-4-20 02:18 , Processed in 0.236010 second(s), 37 queries .

SolidWorks机械工程师网 ( 鲁ICP备14025122号-2 ) 鲁公网安备 37028502190335号

声明:本网言论纯属发表者个人意见,与本网立场无关。
如涉版权,可发邮件: admin@swbbsc.com

快速回复 返回顶部 返回列表