找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 17920|回复: 10
打印 上一主题 下一主题

[求助] AutoCad里的线条如何全部变成白色

[复制链接]
跳转到指定楼层
1
发表于 2014-12-16 11:31:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
RT。客户发来的图纸花花绿绿的,里面有各种颜色。我要把图纸里所有的线条变成白色,然后将图粘贴进word里。那么问题来了,图纸里有非常多的图块,这些图块不能变成白色,目前我的做法是将这些图块一一炸开,然后选择线条变成白色。由于图块数量非常之多,导致这个过程非常浪费时间,请问各位大侠,有没有方便的方法可以将图纸全部变成白色?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 赞一下!赞一下!
2
发表于 2014-12-16 11:47:05 | 只看该作者
请上传文件
3
发表于 2014-12-16 11:56:01 | 只看该作者
有点麻烦的做法  
1.打印成PDF,设置黑白打印
2.将PDF文件另存为图片格式
4
发表于 2014-12-16 13:59:38 | 只看该作者

文件请见附件,图是我随便画的。
另外,打印成PDF再保存图片也太麻烦了,因为我在word里要插入非常多的图,而且不是只做一次,是天天这么做。请鹿大帮忙!~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
5
发表于 2014-12-17 02:33:13 | 只看该作者
沒有AutoCAD,代碼憑空想像的。
有勞測試。
  1. (defun c:allwhite()
  2. (command "chprop" "all" "" "c" "7" "")
  3. (command "layer" "c" "7" "*" "")
  4. (setq eachblock(tblnext "BLOCK" T))
  5. (while eachblock
  6.         (setq eachblockname(cdr(assoc 2)))
  7.         (setq ent(cdr (last (tblsearch "BLOCK" eachblockname))))
  8.         (setq entl(entget ent))
  9.         (setq entl(subst '(62 . 7)(assoc 62 entl)entl))
  10.         (entmod entl)
  11.         (setq eachblock(tblnext "BLOCK"))
  12. )
  13. (princ))
复制代码
6
发表于 2014-12-17 02:46:57 | 只看该作者
漏了一點,以下代碼為準:
  1. (defun c:allwhite()
  2. (command "chprop" "all" "" "c" "7" "")
  3. (command "layer" "c" "7" "*" "")
  4. (setq eachblock(tblnext "BLOCK" T))
  5. (while eachblock
  6.         (setq eachblockname(cdr(assoc 2)))
  7.         (setq ent(cdr (last (tblsearch "BLOCK" eachblockname))))
  8.         (while ent
  9.                 (setq entl(entget ent))
  10.                 (setq entl(subst '(62 . 7)(assoc 62 entl)entl))
  11.                 (entmod entl)
  12.                 (setq ent(entnext ent))
  13.         )
  14.         (setq entl(entget ent))
  15.         (setq eachblock(tblnext "BLOCK"))
  16. )
  17. (princ))
复制代码
7
发表于 2014-12-17 10:27:24 | 只看该作者
Francis 发表于 2014-12-17 02:46
漏了一點,以下代碼為準:

多谢闷大,深夜里还在回复我的帖子,为我的问题编写代码,感动~~
您的代码测试如下:
1、在客户的图纸里测试,第一张图纸里,所有的线条完美地全部变成白色,第二张却没变。
2、在我昨天随便画的那张图里测试,图块没变成白色。
不管是变白的还是没变白的,控制台最后都显示的是 错误:参数太少。
图纸中的很多图块里面还镶嵌有图块。比如:图纸中的小车是个图块,小车的车轮是镶嵌在小车内的图块,车轮上的螺钉是镶嵌在车轮内的图块。。。。甚至还有更下层的。不知道是不是这样的原因呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
8
发表于 2014-12-17 10:55:52 | 只看该作者
gaowengang 发表于 2014-12-17 10:27
多谢闷大,深夜里还在回复我的帖子,为我的问题编写代码,感动~~
您的代码测试如下:
1、在客户的图纸 ...

不好意思,第6句有誤,提取每一個圖塊時沒給圖塊的圖元,導致缺乏參數,請改為以下代碼再試一次。
  1.         (setq eachblockname(cdr(assoc 2 (entget eachblock))))
复制代码



9
发表于 2014-12-17 18:37:25 | 只看该作者
Francis 发表于 2014-12-17 10:55
不好意思,第6句有誤,提取每一個圖塊時沒給圖塊的圖元,導致缺乏參數,請改為以下代碼再試一次。

回闷大:
测试结果如下图。白天一整天登陆不了论坛,下班了才能登陆。未能及时回复测试结果,抱歉。
还有些问题。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
10
发表于 2014-12-17 19:41:45 | 只看该作者
發現第14句是多餘的,以下代碼改正了,並加上了註解,希望可讓樓主解決問題。
  1. (defun c:allwhite()
  2. (setvar "cmdecho" 0);暫停傳回信息到指令列
  3. (command "chprop" "all" "" "c" "7" "") ;所有圖元改為白色,不包括塊內的圖元
  4. (command "layer" "c" "7" "*" "") ;所有圖層改為白色
  5. (setq eachblock(tblnext "BLOCK" T)) ;獲取在圖塊區第一個圖塊
  6. (while eachblock ;處理每一個圖塊,直到最後一個圖塊
  7.         (setq eachblockname(cdr(assoc 2 (entget eachblock)))) ;獲取圖塊的名稱
  8.         (setq ent(cdr (last (tblsearch "BLOCK" eachblockname)))) ;利用圖塊名稱搜尋它內含的第一個圖元
  9.     (while ent ;處理每一個圖元,直到塊內最後一個圖元
  10.         (setq entl(entget ent)) ;獲取圖元的資料清單
  11.         (princ entl)(princ "\n") ;強制傳回圖元的資料清單到指令列(成功後刪除此行)
  12.         (setq entl(subst '(62 . 7)(assoc 62 entl)entl)) ;修改圖元的資料清單
  13.         (princ entl)(princ "\n")(princ "\n") ;強制傳回修改後的資料清單到指令列(成功後刪除此行)
  14.         (entmod entl) ;更新圖元
  15.         (setq ent(entnext ent)) ;下一個圖元
  16.     ) ;完結 while ent
  17.         (setq eachblock(tblnext "BLOCK")) ;下一個圖塊
  18. ) ;完結 while eachblock
  19. (setvar "cmdecho" 1);開啟傳回信息到指令列
  20. (princ)) ;避開傳回不必要的信息
复制代码


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

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-5-2 19:24 , Processed in 0.025088 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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