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 "" ) )
页: 1 2 [3] 4 5
查看完整版本: 能否用lisp实现快速将选中的图元另存一个cad文件