乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: gamulj

[编程交流] 用于块布局名称的Lisp

[复制链接]

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 17:37:41 | 显示全部楼层
 
工作完美:)
 
塔瓦,你让我开心!
 
再次感谢!
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 17:38:43 | 显示全部楼层
 
非常欢迎你。
回复

使用道具 举报

0

主题

3

帖子

3

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 17:42:13 | 显示全部楼层
是否可以将其修改为在字段中使用以获取当前选项卡的名称?CTAB变量不适用于数据提取。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 17:45:32 | 显示全部楼层
 
试试这个mods。
  1. (defun c:Test (/ doc )
  2. ;; Tharwat - 29.Nov.2016 ;;
  3. (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  4. (vlax-for x  (vla-get-layouts doc)
  5.    (if (/= (vla-get-name x) "Model")
  6.      (vlax-for b  (vla-get-block x)
  7.        (and (eq (vla-get-objectname b) "AcDbBlockReference")
  8.             (eq (vla-get-effectivename b) "TILTEBLOCK")
  9.             (vl-some
  10.               '(lambda (a)
  11.                  (and (eq "LAYOUT" (strcase (vla-get-tagstring a)))
  12.                    (progn
  13.                      (vla-put-textstring a "%<\\AcVar ctab>%") t)
  14.                    )
  15.                  )
  16.               (vlax-invoke b 'getattributes)
  17.               )
  18.             )
  19.        )
  20.      )
  21.    )
  22. (vla-regen doc acAllViewports)
  23. (princ)
  24. )(vl-load-com)
回复

使用道具 举报

0

主题

3

帖子

3

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 17:52:19 | 显示全部楼层
我不知道怎么用。我尝试将其复制到字段中的diesel表达式中,但它表示字段代码无效。
 
我有在零件名称中使用布局名称的零件文件,因此名称是自动的。然而,当数据提取完成时,它只使用最后保存的选项卡。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 17:54:34 | 显示全部楼层
只需确保将上面发布的所有代码复制到一个新的txt文件中,并将其保存为扩展名为。lsp然后返回AutoCAD并键入命令名:APPLOAD或AP,然后选择lisp文件,最后键入test以运行lisp例程,您应该使用驻留在中的相关布局名称修改块名“TITLEBLOCK”。
回复

使用道具 举报

0

主题

3

帖子

3

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 17:57:38 | 显示全部楼层
我试图避免用户交互。当用户/绘图人员创建新零件时,我不希望必须依赖于该人员来运行命令。零件名称属性包含文件名变量和CTAB变量,再加上一个递增的数字来标识零件。因此,如果该部分位于“3”选项卡上的VM文件中,则该部分将是VM-3-X,其中X是任意数字。
 
您的代码提取布局名称而不使用CTAB变量,我想将其放入属性的字段中,可能通过diesel表达式。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 13:02 , Processed in 0.443848 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表