两个程序有冲突,该如何改?
运行第一个程序 q3 后,第二个程序(图层切换)就不能运行了,该怎么该第一个程序 q3 呢?诚望解答。谢谢。
;(无痕.2004.4+菡萏.2012.04.09,炸组(wwwliuyu 2008.08.21)炸开嵌套块或组-阿甘改于2012.7.14 苏利宝合并于2013.04.28
(defun c:q3(/ *error* ent gr i msg n qf ss s1)
(defun *error* (msg)
(setvar "qaflags" qf)
(princ msg)
(princ))
(setq qf (getvar "qaflags"))
(setvar "qaflags" 1)
(princ "\n选择要炸开的块或组")
(setq ss (ssget))
(setq n (sslength ss))
(command "undo" "be")
(setq i (- n 1))
(setq s1 (ssadd))
(repeat n ; 先删除组
(setq ent (ssname ss i))
(ssadd ent s1)
(setq gr (cdr (assoc 0 (entget (cdr (assoc 330 (entget ent)))))))
(if (= "GROUP" gr)
(entdel (cdr (assoc 330 (entget ent)))))
(setq i (1- i)))
(while (setq ss (ssget "p" '((0 . "INSERT")))) ; 再炸开嵌套块
(command ".explode" ss ""))
(setq n 0)
(repeat (sslength (ssget "p"))
(ssadd (ssname (ssget "p") n) s1)
(setq n (1+ n)))
(setvar "qaflags" qf)
(command "select" s1 "")
(c:dac)
(princ))
运行 程序
;输出CAD→Creo.dwg到桌面(x_s_s_1 2013.04.27 http://bbs.mjtd.com/thread-101127-1-1.html)
(defun c:dac()
(setq ss (ssget "p" '((8 . "0"))))
(if (findfile "E:\\00\\0.dwg" )
(command "-WBLOCK" "E:\\00\\0.dwg" "y" "" 0 ss "")
(command "-WBLOCK" "E:\\00\\0.dwg" "" 0 ss ""))
(command ".oops")
(command "undo" "e")
(command "u")
(princ))
(defun c:1()
(setq ss (ssget"i"))
(if (= ss nil)
(command "layer" "m" "0" "c" "253" "" "lw" "0.3" "" "")
(command "change" ss "" "p" "la" "0" "c" "byl" "lw" "byl" "lt" "byl" ""))) 看不出来 图层切换的程序就不能用了:
命令: 1 change 找到 1 个
指定修改点或 [特性(P)]:
需要点或选项关键字。
; 错误: 函数被取消
指定修改点或 [特性(P)]: 未选择可修改的对象
ZZXXQQ 发表于 2013-4-30 07:56 static/image/common/back.gif
看不出来
那个“p”有问题了 改成这样试试:
(command "change" ss "" "p" "la" "0" "c" "bylayer" "lw" "bylayer" "lt" "bylayer" "") ZZXXQQ 发表于 2013-5-1 00:19 static/image/common/back.gif
改成这样试试:
(command "change" ss "" "p" "la" "0" "c" "bylayer" "lw" "bylayer" "lt" "bylayer" "")
试过了,还是不行啊,请问有没有办法该前一个程序呢? 顶一下,哪位有空帮改一下,谢谢了 669423907 发表于 2013-5-3 20:04 static/image/common/back.gif
顶一下,哪位有空帮改一下,谢谢了
(defun c:dac()改成(defun c:dac(/ ss )
(defun c:1()改成(defun c:1( /ss)
试试 夏生生 发表于 2013-5-3 20:52 static/image/common/back.gif
(defun c:dac()改成(defun c:dac(/ ss )
(defun c:1()改成(defun c:1( /ss)
试试
谢谢你,程序提示缺少参数 把(defun c:q3(/ *error* ent gr i msg n qf ss s1)改成(defun c:q3(/ ent gr i msg n qf s1)试试。
页:
[1]
2