乐筑天下

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

[编程交流] Lisp程序请调整。。。

[复制链接]

7

主题

55

帖子

48

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 06:45:12 | 显示全部楼层 |阅读模式
我用这个lsp对我使用的块中的文本属性重新编号。我喜欢Lsp的工作方式。问题是,它只允许我一次更改一个块属性。我希望能够同时更换几个。请帮忙。
雷纳姆。lsp
回复

使用道具 举报

0

主题

119

帖子

119

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 06:51:28 | 显示全部楼层
你说的同时有几个是什么意思?比如用窗口选择一组块?如果这就是你想做的,程序怎么知道数字的顺序?
回复

使用道具 举报

7

主题

55

帖子

48

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 06:54:07 | 显示全部楼层
我需要它以与重新编号命令相同的方式运行。我想有选择,要么选择一个在一个特定的顺序或随机分组一次。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 06:56:58 | 显示全部楼层
试一试-很快修改~预计会出现错误
 
  1. <p>(defun c:renum    (/ oldPref oldSuf oldStart curText curStr vlaObj keepText)</p><p> </p><p>  (vl-load-com)</p><p> </p><p>  (defun TTC_Paste  (pasteStr keepText / sslst vlaObj)</p><p>    (if    (setq ss (ssget))</p><p>      (progn</p><p>    (setq sslst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))</p><p>    (foreach ent sslst</p><p>    (cond</p><p>           ((= "DIMENSION" (cdr (assoc 0 (entget ent))))</p><p>        (setq vlaObj (vlax-ename->vla-object ent)</p><p>              oldStat (vla-get-Measurement vlaObj))</p><p>        (if keepText</p><p>          (if (= (vla-get-TextOverride vlaObj) "")</p><p>            (setq pasteStr</p><p>               (strcat</p><p>                 pasteStr</p><p>                 (rtos oldStat (vla-get-UnitsFormat vlaObj) (vla-get-PrimaryUnitsPrecision vlaObj))))</p><p>            (setq pasteStr (strcat pasteStr (vla-get-TextOverride vlaObj)))))</p><p>        (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-TextOverride (list vlaObj pasteStr)))</p><p>          (princ "\n Can't paste. Object may be on locked layer. "))) ; end condition #1</p><p>           ((= "ACAD_TABLE" (cdr (assoc 0 (entget ent))))</p><p>        (setq vlaObj (vlax-ename->vla-object ent))</p><p>        (if keepText</p><p>          (setq pasteStr (strcat pasteStr (vla-get-TextString vlaobj))))</p><p>        (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-TextString (list vlaObj pasteStr)))</p><p>          (princ "\nError. Can't paste text. ")</p><p>          (entupd ent))) ; end condition # 2</p><p>           ((= "INSERT" (cdr (assoc 0 (entget ent))))</p><p>        (princ "\nCan't paste to block's DText or MText. ")) ; end condition #3</p><p>           ((member (cdr (assoc 0 (entget ent))) '("TEXT" "MTEXT" "ATTRIB" "ATTDEF")) ; end and</p><p>        (setq vlaObj (vlax-ename->vla-object ent))</p><p>        (if keepText</p><p>          (setq pasteStr (strcat pasteStr (vla-get-TextString vlaobj))))</p><p>        (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-TextString (list vlaObj pasteStr)))</p><p>          (princ "\nError. Can't pase text. "))) ; end condition #4</p><p>           (T (princ "\nCan't paste. Invalid object. ")) ; end condition #5</p><p>           ))</p><p>         T) ; end progn</p><p>      nil) ; end if</p><p>    ) ;_TTC_PASTE</p><p> </p><p> </p><p>  (setq aDoc (vla-get-ActiveDocument (vlax-get-acad-object)))</p><p>  (vla-StartUndoMark aDoc)</p><p>  (if (not rnm:Pref)</p><p>    (setq rnm:Pref ""))</p><p>  (if (not rnm:Suf)</p><p>    (setq rnm:Suf ""))</p><p>  (if (not rnm:Start)</p><p>    (setq rnm:Start 1))</p><p>  (setq    oldPref     rnm:Pref</p><p>    oldSuf     rnm:Suf</p><p>    oldStart rnm:Start) ; end setq</p><p>  (setq rnm:Pref (getstring T (strcat "\nType prefix: : ")))</p><p>  (if (= "" rnm:Pref)</p><p>    (setq rnm:Pref oldPref))</p><p>  (if (= " " rnm:Pref)</p><p>    (setq rnm:Pref ""))</p><p>  (setq rnm:Suf (getstring T (strcat "\nType suffix: : ")))</p><p>  (if (= "" rnm:Suf)</p><p>    (setq rnm:Suf oldSuf)) ;(if(= " " rnm:Suf)(setq rnm:Suf ""))</p><p>  (setq    rnm:Start (getint (strcat "\nEnter start number </p><p>                  (itoa rnm:Start)</p><p>                  ">: ")))</p><p>  (if (null rnm:Start)</p><p>    (setq rnm:Start oldStart))</p><p>  (initget "Yes No Ä</p>
回复

使用道具 举报

7

主题

55

帖子

48

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 07:01:01 | 显示全部楼层
这就是它告诉我的。我只需要更改块内的属性(中间数字),我将附加我正在使用的块。打开然后爆炸一次。
074517hbn551b11751587n.png
点块。图纸
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:02:55 | 显示全部楼层
当“找不到视口”这个短语在您正在运行的LISP中不起作用时,我不明白您怎么会得到这样的回报——在我看来,这听起来像是以前LISP的错误定义。
 
我只是很快地看了看——我会再看一眼的。
 
编辑;你能用2000年的格式把这张图贴出来吗?这里只能用04年
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:06:09 | 显示全部楼层
我知道问题是什么-LISP使用nentsel提供有关属性和属性定义的信息,如果在块中选择,则提供文本。如果不进行更多编码,则无法使用ssget方法轻松获得该信息。
回复

使用道具 举报

7

主题

55

帖子

48

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 07:08:14 | 显示全部楼层
“未找到视口”不是由于该命令引起的。这是在renum命令之后的命令。我只是滚动到肾素序列。这是ACAD 2000中的块
ACAD-2000-点块。图纸
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:11:07 | 显示全部楼层
这些点有后缀吗?
回复

使用道具 举报

7

主题

55

帖子

48

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 07:15:42 | 显示全部楼层
对我目前使用的“renum”lisp提供了添加后缀和preffix或两者的选项。我正在处理的当前块有一个预修复,没有后缀。我永远不知道什么时候我会需要一个或另一个。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 15:21 , Processed in 0.492261 second(s), 74 queries .

© 2020-2025 乐筑天下

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