xiaomm250 发表于 2023-4-3 16:12:21

vitalgg 发表于 2023-4-3 13:12
选择集变图元列表。然后 foreach 或 mapcar

还有一个问题,比如有
布局1
布局2
布局3
布局4
布局5
布局6
布局7
布局8
布局9
布局10
布局11
布局12
布局13
布局14
布局15
布局16
布局17
布局18
布局19
布局20
这样二十个布局,
我需要删除相同位置的相同图元。
就像一堆纸,我想实现在第一张纸上盖章,然后下面的所有的纸上都盖上这个章,
但是在盖章之前,我需要批量操作,把盖章的位置都擦干净!(把所有的纸上的对应位置都擦干净)

vitalgg 发表于 2023-4-3 17:47:50

xiaomm250 发表于 2023-4-3 16:02
你好,有办法获取所有的布局的名称吗?
比如有的名称叫“布局1”,有的可能叫“布局a”,
要复制到布局 ...


vitalgg 发表于 2023-4-3 17:58:46

xiaomm250 发表于 2023-4-3 16:12
还有一个问题,比如有
布局1
布局2


(ssget "x" (list '(0 . "图元类型")'(410 . "布局名") '(-4 . ">,>,*") '(10X1 Y1 Z1)'(-4 . “<,<,*")'(10X2 Y2 Z2)))

上面只是个选择示例。只有 "x" 参数可以无视实际是否显示屏幕区域上。
其它需要先把要删除的布局和图元显示到屏幕上,然后用 ssget 选中并删除。

nyistjz 发表于 2023-4-3 19:49:09

Klein 发表于 2023-4-3 13:56
或者试一试用commond命令的chspace?

正解!

gaics 发表于 2023-4-4 07:57:38

本帖最后由 gaics 于 2023-4-4 07:59 编辑

xiaomm250 发表于 2023-4-3 16:02
你好,有办法获取所有的布局的名称吗?
比如有的名称叫“布局1”,有的可能叫“布局a”,
要复制到布局 ...
(getvar "CTAB")或者(layoutlist)

xiaomm250 发表于 2023-4-4 08:45:15

gaics 发表于 2023-4-4 07:57
(getvar "CTAB")或者(layoutlist)

(layoutlist)
这个不错,居然那么容易就获取得到所有的布局名称,缺点是布局名排序有问题

xiaomm250 发表于 2023-4-4 08:47:54

vitalgg 发表于 2023-4-3 17:58
(ssget "x" (list '(0 . "图元类型")'(410 . "布局名") '(-4 . ">,>,*") '(10X1 Y1 Z1)'(-4 . “

用CP行不?是这个CP不行吗?

vitalgg 发表于 2023-4-4 09:07:16

xiaomm250 发表于 2023-4-4 08:47
用CP行不?是这个CP不行吗?

CP 只能选中屏幕上显示的图元,显示区域以外的选不上。
@lisp函数 (layout:list) 可以按显示顺序列表。注意冒号。

xiaomm250 发表于 2023-4-4 10:49:27

vitalgg 发表于 2023-4-4 09:07
CP 只能选中屏幕上显示的图元,显示区域以外的选不上。
@lisp函数 (layout:list) 可以按显示顺序列表。 ...

(defun layout:list (/ a lst)
    "按照当前屏幕显示的顺序返回所有布局名称"
    "布局名列表"
    (vlax-for a *layouts* (setq lst (cons (list (vla-get-taborder a)
                  (vla-get-name a))
                lst)))
    (cdr (mapcar (quote cadr)
            (vl-sort lst (quote (lambda (x y)
                        (< (car x)
                            (car y))))))))你的这个简直就是宝库,我从那儿把你代码复制粘贴过来了。


https://gitee.com/atlisp/atlisp-lib/blob/main/src/layout/list.lsp


xiaomm250 发表于 2023-4-4 11:03:15

vitalgg 发表于 2023-4-4 09:07
CP 只能选中屏幕上显示的图元,显示区域以外的选不上。
@lisp函数 (layout:list) 可以按显示顺序列表。 ...

你的*layouts*又是什么东西?我总感觉你这代码不对,
你有你这lst似乎缺乏初值,还有vla-get-taborder,我怎么找不到相关的帮助?
明经的chm帮助文件,我搜索了,但是找不到!
页: 1 [2] 3
查看完整版本: 用lisp如何实现把一个图元从模型空间复制到布局空间呀