明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: xiaomm250

[提问] 用lisp如何实现把一个图元从模型空间复制到布局空间呀

[复制链接]
 楼主| 发表于 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
这样二十个布局,
我需要删除相同位置的相同图元。
就像一堆纸,我想实现在第一张纸上盖章,然后下面的所有的纸上都盖上这个章,
但是在盖章之前,我需要批量操作,把盖章的位置都擦干净!(把所有的纸上的对应位置都擦干净)
发表于 2023-4-3 17:47:50 | 显示全部楼层
xiaomm250 发表于 2023-4-3 16:02
你好,有办法获取所有的布局的名称吗?
比如有的名称叫“布局1”,有的可能叫“布局a”,
要复制到布局 ...


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2023-4-3 17:58:46 | 显示全部楼层
xiaomm250 发表于 2023-4-3 16:12
还有一个问题,比如有
布局1
布局2

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

上面只是个选择示例。只有 "x" 参数可以无视实际是否显示屏幕区域上。
其它需要先把要删除的布局和图元显示到屏幕上,然后用 ssget 选中并删除。
发表于 2023-4-3 19:49:09 | 显示全部楼层
Klein 发表于 2023-4-3 13:56
或者试一试用commond命令的chspace?

正解!
发表于 2023-4-4 07:57:38 | 显示全部楼层
本帖最后由 gaics 于 2023-4-4 07:59 编辑
xiaomm250 发表于 2023-4-3 16:02
你好,有办法获取所有的布局的名称吗?
比如有的名称叫“布局1”,有的可能叫“布局a”,
要复制到布局 ...

(getvar "CTAB")或者(layoutlist)
 楼主| 发表于 2023-4-4 08:45:15 | 显示全部楼层
gaics 发表于 2023-4-4 07:57
(getvar "CTAB")或者(layoutlist)
  1. (layoutlist)
复制代码

这个不错,居然那么容易就获取得到所有的布局名称,缺点是布局名排序有问题
 楼主| 发表于 2023-4-4 08:47:54 | 显示全部楼层
vitalgg 发表于 2023-4-3 17:58
(ssget "x" (list '(0 . "图元类型")'(410 . "布局名") '(-4 . ">,>,*") '(10  X1 Y1 Z1)'(-4 . “

用CP行不?是这个CP不行吗?
发表于 2023-4-4 09:07:16 | 显示全部楼层
xiaomm250 发表于 2023-4-4 08:47
用CP行不?是这个CP不行吗?

CP 只能选中屏幕上显示的图元,显示区域以外的选不上。
@lisp函数 (layout:list) 可以按显示顺序列表。注意冒号。
 楼主| 发表于 2023-4-4 10:49:27 | 显示全部楼层
vitalgg 发表于 2023-4-4 09:07
CP 只能选中屏幕上显示的图元,显示区域以外的选不上。
@lisp函数 (layout:list) 可以按显示顺序列表。 ...
  1. (defun layout:list (/ a lst)
  2.     "按照当前屏幕显示的顺序返回所有布局名称"
  3.     "布局名列表"
  4.     (vlax-for a *layouts* (setq lst (cons (list (vla-get-taborder a)
  5.                     (vla-get-name a))
  6.                 lst)))
  7.     (cdr (mapcar (quote cadr)
  8.             (vl-sort lst (quote (lambda (x y)
  9.                         (< (car x)
  10.                             (car y))))))))
你的这个简直就是宝库,我从那儿把你代码复制粘贴过来了。


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


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

你的*layouts*又是什么东西?我总感觉你这代码不对,
你有你这lst似乎缺乏初值,还有vla-get-taborder,我怎么找不到相关的帮助?
明经的chm帮助文件,我搜索了,但是找不到!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-16 14:49 , Processed in 0.177081 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表