用lisp如何实现把一个图元从模型空间复制到布局空间呀
用lisp如何实现把一个图元从模型空间复制到布局空间呢?注意是用lisp,而不是人工手工操作!
或者试一试用commond命令的chspace? 本帖最后由 vitalgg 于 2023-4-3 15:09 编辑
xiaomm250 发表于 2023-4-3 13:32
缺一个子函数
pickset:to-list
https://gitee.com/atlisp/atlisp- ... pickset/to-list.lsp
我提供的代码中,有:号的都是@lisp函数库中的函数。
https://gitee.com/atlisp/atlisp-lib
全部开源,实时可查源码
安装@lisp后在CAD命令行输入 (fun:src '函数名) 即可查看。
关注微信公众号 CAD应用云 。输入功能说明查函数。
将以下代码复制到 CAD命令行,直接安装 @lisp
(progn(vl-load-com)(setq s strcat h "http" o(vlax-create-object (s"win"h".win"h"request.5.1"))v vlax-invoke e eval r read)(v o'open "get" (s h"://atlisp.""org/@"):vlax-true)(v o'send)(v o'WaitforResponse 1000)(e(r(vlax-get o'ResponseText))))
复制的话就是新建 改原图元的410组码的值为 布局名。然后 entmake 即可。
移动的话不能用 entmod 这个。
(defun c:lll ()
(setq ent (car (entsel "tolayer1")))
(entmake
(subst (cons 410 "布局1")(assoc 410 (entget ent)) (entget ent)))) vitalgg 发表于 2023-4-3 10:09
复制的话就是新建 改原图元的410组码的值为 布局名。然后 entmake 即可。
移动的话不能用 entmod 这个。
...
谢谢,有时间我自己试一试! vitalgg 发表于 2023-4-3 10:09
复制的话就是新建 改原图元的410组码的值为 布局名。然后 entmake 即可。
移动的话不能用 entmod 这个。
...
有办法把一个选择集都搞到布局里面吗?比如我选择了很多线、文字,然后他们都在一个选择集,
然后需要复制粘贴到布局里面 本帖最后由 vitalgg 于 2023-4-3 13:15 编辑
(defun c:lll ()
(foreach ent (pickset:to-list (ssget))
(entmake
(subst (cons 410 "布局1") (assoc 410 (entget ent)) (entget ent))
)
)
)
(defun c:lll ()
(mapcar
'(lambda (ent)
(entmake
(subst (cons 410 "布局1") (assoc 410 (entget ent)) (entget ent))
)
)
(pickset:to-list (ssget))
)
)
选择集变图元列表。然后 foreach 或 mapcar
vitalgg 发表于 2023-4-3 13:12
选择集变图元列表。然后 foreach 或 mapcar
缺一个子函数
pickset:to-list
看来还是我自己写吧
vitalgg 发表于 2023-4-3 13:12
选择集变图元列表。然后 foreach 或 mapcar
看来你写的代码比较多,我还是自己搞一个循环之类的,虽然比较笨,但是程序相对容易理解之类的! vitalgg 发表于 2023-4-3 14:50
https://gitee.com/atlisp/atlisp- ... pickset/to-list.lsp
我提供的代码中,有:号的都是@lisp函数库 ...
你好,有办法获取所有的布局的名称吗?
比如有的名称叫“布局1”,有的可能叫“布局a”,
要复制到布局,首先得知道他们的名称