明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
123
返回列表 发新帖
楼主: xiaomm250

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

[复制链接]
 楼主| 发表于 2023-4-4 11:23:28 | 显示全部楼层
本帖最后由 xiaomm250 于 2023-4-4 11:29 编辑

xiaomm250 发表于 2023-4-4 10:49
你的这个简直就是宝库,我从那儿把你代码复制粘贴过来了

  1. (vl-load-com)
  2. ;子函数,布局名列表,按照当前屏幕显示的顺序返回所有布局名称
  3. (defun c:lolist(/ a lst newlst out x y xx)
  4.     (setq lst nil);初始赋值
  5.     ;vlax获取所有的布局的顺序号、布局名称,两列,获得这个列表
  6.     (vlax-for Layout (vla-get-Layouts(vla-get-ActiveDocument(vlax-get-acad-object)))
  7.             (setq lst (cons (list (vla-get-TabOrder Layout)(vla-get-name Layout)) lst))
  8.     )
  9.     ;重新排序,按照第1列(TabOrder)从小到大的顺序排列
  10.     (setq newlst (vl-sort lst (function(lambda(x y)(<(car x)(car y))))))
  11.     ;只取第二列的元素,也就是布局的名称
  12.     (setq out (mapcar(function(lambda(xx)(nth 1 xx))) newlst))
  13.     ;第一个是模型名称,因此删除
  14.     (setq out (cdr out))
  15. )




我把你的代码改一改!

完善你的代码,让你的代码能独立工作,并且让代码可读性进一步提升!
发表于 2023-4-4 12:51:34 | 显示全部楼层
这个问题不闭合---从模型空间到图纸空间,不仅涉及到“哪个布局”的问题,还涉及到“哪个视口的问题”。要说这个功能,leemac早就写过了。

本帖子中包含更多资源

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

x

点评

还好我到他的网站上下载到了  发表于 2023-4-4 13:12
下载失败!最笨的办法就是你把所有的代码复制粘贴到代码框里面!  发表于 2023-4-4 13:11
发表于 2023-4-4 12:54:48 | 显示全部楼层
本帖最后由 vitalgg 于 2023-4-4 13:00 编辑
xiaomm250 发表于 2023-4-4 11:03
你的*layouts*又是什么东西?我总感觉你这代码不对,
你有你这lst似乎缺乏初值,还有vla-get-taborder, ...

不需要复制函数,只需安装 @lisp ,这些函数就自动加载到CAD了。
*layouts* 是布局的对象集 的 ActiveX

点评

*layouts*怎么来的?我不知道,我自己修改了。见我21楼的代码,根据我的那个代码,能成功  发表于 2023-4-4 13:13
 楼主| 发表于 2023-4-4 13:57:37 | 显示全部楼层
vitalgg 发表于 2023-4-3 17:58
(ssget "x" (list '(0 . "图元类型")'(410 . "布局名") '(-4 . ">,>,*") '(10  X1 Y1 Z1)'(-4 . “
(ssget "x" (list '(0 . "图元类型")'(410 . "布局名") '(-4 . ">,>,*") '(10  X1 Y1 Z1)'(-4 . “<,<,*")'(10  X2 Y2 Z2)))
选中是能选中了,但是删除不掉


  1.           (command"_ERASE" ss "")
我用这个命令,删除不掉,
ss是ssget得到的选择集,但是我删除不掉不在当前空间里面的图元
 楼主| 发表于 2023-4-6 08:48:48 | 显示全部楼层
xiaomm250 发表于 2023-4-4 13:57
选中是能选中了,但是删除不掉
  1.             (vla-delete(vlax-ename->vla-object (ssname ss i)))
复制代码
用这个能把看见的、看不见的都删除掉!

点评

我已经测试成功过了  发表于 2023-4-6 08:50
 楼主| 发表于 2023-4-6 14:47:01 | 显示全部楼层
陨落 发表于 2023-4-4 12:51
这个问题不闭合---从模型空间到图纸空间,不仅涉及到“哪个布局”的问题,还涉及到“哪个视口的问题”。要 ...

你很牛,居然想到leemac的代码有这个功能,不过他的代码基本都是天书,送给我看我也看不懂
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 14:23 , Processed in 0.169813 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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