明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1416|回复: 8

[讨论] 关于图层的替换问题

[复制链接]
发表于 2011-5-10 16:35 | 显示全部楼层 |阅读模式
我主要是做机械设计的,平时用CAD转化他人或者国外的图纸,图层都是别的公司,现在想偷懒,用编程写一个工具或者命令,能够将需要修改的图层改成自己需要的图层(不只一种图层,有4、5中图层都要一起换),我自己也试着写过,出过几次问题,所以没时间细细研究了,我知道这对高手来说是个小case,所以想找大家帮忙.

该贴已经同步到 g414161696的微博
 楼主| 发表于 2011-5-11 08:24 | 显示全部楼层
为什么木有人回答我~~~~~~
发表于 2011-5-11 09:30 | 显示全部楼层
...将需要修改的图层改成自己需要的图层...
这个好比翻译 ...
什么图层改成什么图层 !?

也就是说得先知道图层对映关系
或者图层对映关系可以从何处取得 ....
or some what ?
 楼主| 发表于 2011-5-11 11:51 | 显示全部楼层
回复 Andyhon 的帖子

我自己写了个命令,希望大家帮我看看,有次出过错,不知道怎么改
(defun c:hc()
(ssget "x" '((8 . "m_vis")))
(command "change" "p" "" "p" "la" "draw" "")
(ssget "x" '((8 . "m_center")))
(command "change" "p" "" "p" "la" "center" "")
(ssget "x" '((8 . "m_dim")))
(command "change" "p" "" "p" "la" "dim" "")
(ssget "x" '((8 . "m_hatch")))
(command "change" "p" "" "p" "la" "hatch" "")
(ssget "x" '((8 . "m_hid")))
(command "change" "p" "" "p" "la" "dashed" "")
(ssget "x" '((8 . "m_thr_thin")))
(command "change" "p" "" "p" "la" "draw-xi" ""))

我用change修改图层,只能先选一次选择集,然后用p找上次的选择.
但是我的本意是想用将选择集放到一个参数下,然后用change修改,但是行不通,或者我不知道怎么搞,求大家帮我看看,下面是用定义好的选择集写的,大家帮我看哪里错了.
(defun c:hc()
(setq ss1 (ssget "x" '((8 . "m_vis"))))
(command "change" ss1 "" "p" "la" "draw" "")主要是这句怎么修改~~~~~~~~~~~~~~~~~~~~~~~~~~~
发表于 2011-5-11 12:02 | 显示全部楼层
本帖最后由 ZZXXQQ 于 2011-5-11 12:12 编辑

(defun c:hc ()
(if (setq ss1 (ssget "X" '((8 . "m_vis"))))
(command "chprop" ss1 "" "LA" "draw" "")
)
)

总体可写成这样:
(defun c:hc ()
(setq oldl ("m_vis" "m_center" "m_dim" "m_hatch" "m_hid" "m_thr_thin"))
(setq newl ("draw" "center" "dim" "hatch" "dashed" "draw-xi")
(setq i 0)
(repeat (length oldl)
  (if (setq ss1 (ssget "X" (list (cons 8 (nth i oldl)))))
   (command ".CHPROP" ss1 "" "LA" (nth i newl) "")
  )
  (setq i (1+ i))
)
(princ)
)

 楼主| 发表于 2011-5-17 18:28 | 显示全部楼层
回复 ZZXXQQ 的帖子

看了你的改进,果然比我的简洁多了,谢谢你的分享
 楼主| 发表于 2011-5-17 18:31 | 显示全部楼层
ZZXXQQ 发表于 2011-5-11 12:02
(defun c:hc ()
(if (setq ss1 (ssget "X" '((8 . "m_vis"))))
(command "chprop" ss1 "" "LA" "draw" "" ...

还有一个问题,就是你的程序 最后用
(command ".CHPROP" ss1 "" "LA" (nth i newl) "")
这个chprop是什么命令啊 而且前面还有一个点~~
发表于 2011-5-17 20:29 | 显示全部楼层
就是chprop命令,可看ACAD自带的帮助。
发表于 2011-5-17 20:51 | 显示全部楼层
给你个程序你看看是否用得到,因为程序没时间完善,所以只给你个编译的版本

功能:清除因插入、粘帖等命令所携带的图层、文字样式和标注样式数据,以达到清洁插入块的目的。

本帖子中包含更多资源

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

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-4 03:52 , Processed in 0.372501 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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