yaokui25
发表于 2017-11-28 11:45:55
本帖最后由 yaokui25 于 2017-11-28 12:02 编辑
把黄色线段通过命令实现闭合多段线
每块材料名称必须保证在多段线内
这样的话就可以实现批量输出单品。
情迷法兰西0
发表于 2017-11-29 08:23:15
司徒妙嘉 发表于 2017-11-28 09:43
很像,很像! 兄弟,我就指望你了!
鄙人思路如下
爱lisp开发论坛 - 一个专业的CAD二次开发论坛!http://bbs.ivlisp.com/forum.php?mod=viewthread&tid=497&extra=
司徒妙嘉
发表于 2017-11-29 12:06:35
情迷法兰西0 发表于 2017-11-29 08:23
鄙人思路如下
爱lisp开发论坛 - 一个专业的CAD二次开发论坛!http://bbs.ivlisp.com/forum.php?mod=vie ...
哎呀,原来自己搞了个论坛啊.
代码我看了, 但是我不是很看得懂. 以下几个问题请教下:
1. 是不是对象必须是要多段线,而且多段线轮廓内不能再有孔?
2. 是不是必须像你前面演示gif里面一样, 每个子图都要在相同大小的框内, 然后通过等量变换中心位置来循环?
3. "图元中点","图元对角"咋整?
情迷法兰西0
发表于 2017-11-29 13:07:05
司徒妙嘉 发表于 2017-11-29 12:06
哎呀,原来自己搞了个论坛啊.
代码我看了, 但是我不是很看得懂. 以下几个问题请教下:
1. 是不是对象必须 ...
回您的问题
1、对象是不是多段线不重要,只要能确定出一个选择集即可。多段线内能不能再有孔?随便,只要包含在选择集内的都会被另存为一个DWG
2、每个子图相不相同不重要,只要可以每次确定选择集即可,通过何种方式进行中心位置循环 不重要,这个是视觉效果,可以不变换视口内容。
3、图元中点,图元对角为defun 的子函数
4、不是我的论坛,只是已经发在一个论坛了就没必要发重复的帖子在明经了
血司
发表于 2017-11-29 15:18:32
ssget wblock就行
司徒妙嘉
发表于 2017-11-29 16:18:14
本帖最后由 司徒妙嘉 于 2017-11-29 16:23 编辑
情迷法兰西0 发表于 2017-11-29 13:07
回您的问题
1、对象是不是多段线不重要,只要能确定出一个选择集即可。多段线内能不能再有孔?随便,只 ...
我真的还是小白, 你对我用您这样的称呼我受不起啊,,,
我看到代码第三行就是(setq ss(ssget'((0 . "*polyline")))这不是选中多段线的意思吗? \n子图是不是都要放到像图2那样的格子区域内?像图1这样的用不了的?
血司
发表于 2017-11-30 08:55:55
血司 发表于 2017-11-29 15:18
ssget wblock就行
(setq wz (ssget "WP" pts (list '(0 . "TEXT"))))
司徒妙嘉
发表于 2017-12-1 09:09:38
情迷法兰西0 发表于 2017-11-29 13:07
回您的问题
1、对象是不是多段线不重要,只要能确定出一个选择集即可。多段线内能不能再有孔?随便,只 ...
你的那代码里面就是在图元中心跟图框对角上面的plinexy是什么函数啊??
司徒妙嘉
发表于 2017-12-1 09:32:36
血司 发表于 2017-11-30 08:55
(setq wz (ssget "WP" pts (list '(0 . "TEXT"))))
(defun c:ftc ( tcont pt / n ent enttype)
(setq pt (ssget)
n 0
ent (ssname pt n)
enttype (cdr (assoc 0 (entget ent)))
)
(while (/= enttype "TEXT")
(setq n (1+ n))
(setq ent (ssname pt n)
enttype (cdr (assoc 0 (entget ent)))
)
;(princ n)
;(princ ent)
;(princ enttype)
;(princ "\n")
)
(setq tcont (cdr (assoc 1 (entget ent))))
(command "wblock" pt (strcat "C:\Users\Onca\Desktop\" tcont ".dwg")
)
我取到了需要独立成图形文件(pt), 以及命名该文件的用的文件名就是框选内容中的问题内容(tcont),
我该怎么把这两个参数给到"wblock"就是上面代码最后一句.
Kye
发表于 2017-12-4 14:36:02
;还是73哥说的WBLOCK好 (defun ss2lst (ss / l n) ;_by Gu_lx(repeat (setq n (sslength ss))(setq l (cons (ssname ss (setq n (1- n))) l)))l ) ;;;取出图元索引i对应的值 (defun dxf (ent i)(cdr (assoc i (entget ent))) ) (defun c:tt (/ fold ss txtent name fl path)(setq Fold (getvar "dwgprefix"));_当前文件路径(setq ss (ssget))(setq TxtEnt (car (vl-remove-if-not '(lambda (ent) (= "TEXT" (dxf ent 0)))(ss2lst ss))))(setq name (dxf txtent 1))(setq flpath (strcat fold name))(command "wblock" flpath "" "0,0" ss "" ) )