autolisp编程

求一个把图中所有的块都统一的移动到0图层的代码或者思路??... 求一个把图中所有的块都统一的移动到0图层的代码或者思路?? 展开
 我来答
匿名用户
2014-07-26
展开全部
方法一:这是 Vlisp语句的
(Defun C:Test (/ curModel)
(vl-load-com)
(setq curModel (vla-get-modelSpace (vla-get-activeDocument (vlax-get-acad-object))))
(vlax-for obj curModel
(if (equal (vla-get-objectname obj) "AcDbBlockReference")
(progn
(vla-put-layer obj "0")
)
)
)
(prin1)
)

方法二:用AutoLisp语句的
思路,先用ssget取得当前所有块,然后再将其属性中的图块改为“0”
追问
那怎么全选图中非打印的图元呢,可能有非打印的图层,就是为了避免把需要的东西放到非打印图层里面去了!?
追答
ssget函数中有很多参数呀,你打开帮助看一下就知道了
例如:(setq ss(ssget '((0 . "INSERT")(8 . "非打印的图层"))))
其中 (0 . "INSERT") 表示只选图块
(8 . "非打印的图层")表示只选指定图层

还有很多别的参数,功能很强大,你好好学一下,很简单的。
挥剑975
2014-07-26 · TA获得超过128个赞
知道答主
回答量:178
采纳率:100%
帮助的人:143万
展开全部
(defun c:tiqu(/ a b c)
(setq c(getstring"输入点号:"))
(setq a(getpoint"\n选取点:"))
(terpri)(terpri)
(setq b(open "C:\\Documents and Settings\\Administrator\\桌面\\坐标.txt" "a"))
(print (list c a) b)
(close b)
(princ)
(c:tiqu)
)

好,我就再帮你一次吧,看看是不是这个效果?

(defun c:tiqu(/ a b i)
(setq i (uint 1 "" "\n起始编号:" 1))
(while
(setq a(getpoint"\n选取点:"))
(terpri)
(setq b(open "C:\\Documents and Settings\\Administrator\\桌面\\坐标.txt" "a"))
(print (list i a) b)
(close b)
(setq i (+ 1 i))
(princ)))
(defun ureal (bit kwd msg def / inp)
(if def
(setq msg (strcat "\n" msg "<" (rtos def 2) ">: ")
bit (* 2 (fix (/ bit 2))) )
(setq msg (strcat "\n" msg ": ")) )
(initget bit kwd)
(setq inp (getreal msg))
(if inp
inp
def ) )
(defun uint (bit kwd msg def / inp)
(if def
(setq msg (strcat "\n" msg "<" (itoa def) ">: ")
bit (* 2 (fix (/ bit 2))) )
(setq msg (strcat "\n" msg ": ")) )
(initget bit kwd)
(setq inp (getint msg))
(if inp
inp
def ))
请采纳答案,支持我一下。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式