乐筑天下

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

[编程交流] 使用实际$

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:42:44 | 显示全部楼层
别担心
 
很高兴这能节省一些时间
 
干杯
 
回复

使用道具 举报

0

主题

269

帖子

279

银币

限制会员

铜币
-4
发表于 2022-7-6 15:47:08 | 显示全部楼层
李-
 
通常的做法是在属性的“entmod”后面加上块名的“entupd”;这通常会更新更改,而无需重新生成。虽然我已经阅读了“entupd”,但在某些情况下仍然需要重新生成。
回复

使用道具 举报

0

主题

119

帖子

119

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 15:48:48 | 显示全部楼层
如果我正确理解了Lee的代码,那么他不使用entupd的原因是因为他没有停止获取块实体名称,而是直接指向属性。这就是他的例行公事多么简洁。李,对吗?
回复

使用道具 举报

8

主题

52

帖子

44

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 15:51:46 | 显示全部楼层
李,你会如何将entupd写入到你当时编写的例程中?我很好奇。
回复

使用道具 举报

0

主题

119

帖子

119

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 15:55:30 | 显示全部楼层
尝试在entmod函数之后添加(entupd aEnt),看看它是否有效。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:00:10 | 显示全部楼层
我必须承认,我通常不会使用“entupd”来更新ATT,因为它有时似乎会导致错误,但请尝试以下方法:
 
  1. (defun c:dwgupd (/ ss eLst dNme aEnt aEntLst)
  2. (vl-load-com)
  3. (if (setq ss (ssget "X" (list (cons 0 "INSERT") (cons 2 "TITLE") (cons 66 1)
  4.     (if (getvar "CTAB")
  5.       (cons 410 (getvar "CTAB"))
  6.       (cons 67 (- 1 (getvar "TILEMODE")))))))
  7.    (progn
  8.    (setq eLst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
  9.      dNme (vl-filename-base (getvar "DWGNAME")))
  10.    (foreach e eLst
  11.      (setq aEnt (entnext e))
  12.      (while (not (eq "SEQEND" (cdadr (setq aEntLst (entget aEnt)))))
  13.    (if (= "DRAWINGNAME" (cdr (assoc 2 aEntLst)))
  14.      (progn
  15.    (entmod (subst (cons 1 dNme)(assoc 1 aEntLst) aEntLst))
  16.    (entupd e)))
  17.    (setq aEnt (entnext aEnt)))))
  18.    (princ "\n<!> No Title Blocks Found <!> "))
  19. (princ))
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:01:23 | 显示全部楼层
 
您还需要一个“progn”包装器,因为IF将包含多个要求值的语句
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:04:02 | 显示全部楼层
引用ACAD帮助文件:
 
回复

使用道具 举报

8

主题

52

帖子

44

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 16:08:25 | 显示全部楼层
谢谢你,李。我测试了你的例程,发现了一个额外的右括号错误。我拿走了右边的另外两个,现在效果很好。
 
(entmod(subst(cons 1 dNme)(assoc 1 aEntLst)aEntLst)))
(entupd e)
(setq aEnt(entnext aEntЮЮ)Ю)
(princ“\n未找到标题栏”))
;(命令“_regenall”)
(普林斯)
 
嗯,这是最有教育意义的。谢谢大家的意见!祝你今天愉快,好吗?也来点zZzZ!
回复

使用道具 举报

0

主题

119

帖子

119

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 16:11:16 | 显示全部楼层
呵呵。我不知道。在属性上使用entupd从来没有问题,但我会记住这一点。谢谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 19:26 , Processed in 0.501527 second(s), 70 queries .

© 2020-2025 乐筑天下

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