乐筑天下

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

[编程交流] 从一个区块移动到另一个区块

[复制链接]

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:16:25 | 显示全部楼层 |阅读模式
我想看看这是否可行。具有许多动态块的图形,都具有许多属性。我很好奇是否有一个例程可以选择单个块-允许用户填写属性单击“确定”-然后移动到图形中的“下一个”块,直到完成。
 
像这样的事情有可能发生吗?
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:22:54 | 显示全部楼层
您可以按块名称选择块,转到第一个或拾取的块并更改属性,选择顺序通常按创建顺序,您可以跳过已更改的块。李mac有一个动态块更新程序,所以首先来看一下。
 
  1. ; get all blocks of the same name
  2. (setq blk (entget (car (entsel "Pick a block"))))
  3. (setq blkname (cdr (assoc 2 blk)))
  4. (setq ss (ssget "X" (list (cons 0 "INsert")(cons 2 blkname))))
  5. (alert (strcat "You have " (rtos (sslength ss) 2 0) " blocks called " blkname))

 
如果没有示例dwg,则无法在一个具有3个块的示例后进行更多操作
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:33:18 | 显示全部楼层
CAD块2。图纸
 
这是一个示例文件-文件中有3个块,每个块都有两个属性。我如何实现你的代码?
 
谢谢
回复

使用道具 举报

5

主题

1074

帖子

1088

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-5 17:38:25 | 显示全部楼层
如果需要的话,我可能会在我的快速属性调色板中调整它们。CTRL+SHIFT+P以启用它们,或在屏幕底部的任务栏中启用它们。
 
我怀疑李的Lisp程序,比加尔提到的,是以下内容http://www.lee-mac.com/dynamicblockcounter.html,如果需要轻松跟踪多个块的条件,这非常有用。
 
谢谢李!
181631qckw2skfkkw18sfg.jpg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:45:05 | 显示全部楼层
相关:https://www.theswamp.org/index.php?topic=51947.0
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:50:45 | 显示全部楼层
我想知道在哪个论坛上回复,我决定在这里发布我的尝试:
  1. [color=#8b4513]; Grrr[/color]
  2. [color=#8b4513]; Upon selecting an attributed, dynamic block[/color]
  3. [color=#8b4513]; user is prompted to change every attribute value, on every block with the same name, located on the current tab:[/color]
  4. [b][color=BLACK]([/color][/b]defun C:test [b][color=FUCHSIA]([/color][/b] / *error* SysVarLst e enx o sUndo EffName SSX i en SSX-Lst BlksLst TempSS ll ur str b c att[b][color=FUCHSIA])[/color][/b]
  5. [b][color=FUCHSIA]([/color][/b]setvar 'errno 0[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]sssetfirst nil nil[b][color=FUCHSIA])[/color][/b]
  6. [b][color=FUCHSIA]([/color][/b]defun *error* [b][color=NAVY]([/color][/b] msg [b][color=NAVY])[/color][/b]
  7.         [b][color=NAVY]([/color][/b]sssetfirst nil nil[b][color=NAVY])[/color][/b]
  8.         [b][color=NAVY]([/color][/b]if sUndo [b][color=MAROON]([/color][/b]vla-EndUndoMark [b][color=GREEN]([/color][/b]vla-get-ActiveDocument [b][color=BLUE]([/color][/b]vlax-get-acad-object[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  9.         [b][color=NAVY]([/color][/b]if c [b][color=MAROON]([/color][/b]vla-SendCommand [b][color=GREEN]([/color][/b]vla-get-ActiveDocument [b][color=BLUE]([/color][/b]vlax-get-acad-object[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [color=#2f4f4f]"_.undo"[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][color=#8b4513]; if the user reached till this point[/color]
  10.         [b][color=NAVY]([/color][/b]if SysVarLst [b][color=MAROON]([/color][/b]mapcar '[b][color=GREEN]([/color][/b]lambda [b][color=BLUE]([/color][/b] n v / [b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]setvar n v[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]mapcar 'car SysVarLst[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]mapcar 'cadr SysVarLst[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  11.         [b][color=NAVY]([/color][/b]if
  12.                 [b][color=MAROON]([/color][/b]or
  13.                         [b][color=GREEN]([/color][/b]not [b][color=BLUE]([/color][/b]member msg '[b][color=RED]([/color][/b][color=#2f4f4f]"Function cancelled"[/color] [color=#2f4f4f]"quit / exit abort"[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  14.                         [b][color=GREEN]([/color][/b]wcmatch [b][color=BLUE]([/color][/b]strcase msg[b][color=BLUE])[/color][/b] [color=#2f4f4f]"*BREAK,*CANCEL*,*EXIT*"[/color][b][color=GREEN])[/color][/b]
  15.                 [b][color=MAROON])[/color][/b]
  16.                 [b][color=MAROON]([/color][/b]princ [b][color=GREEN]([/color][/b]strcat [color=#2f4f4f]"\nError: "[/color] msg[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  17.         [b][color=NAVY])[/color][/b]
  18.         [b][color=NAVY]([/color][/b]princ[b][color=NAVY])[/color][/b]
  19. [b][color=FUCHSIA])[/color][/b]
  20. [b][color=FUCHSIA]([/color][/b]setq SysVarLst
  21.         [b][color=NAVY]([/color][/b]mapcar [b][color=MAROON]([/color][/b]function [b][color=GREEN]([/color][/b]lambda [b][color=BLUE]([/color][/b] a b / [b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]list a [b][color=RED]([/color][/b]getvar a[b][color=RED])[/color][/b] b[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  22.                 [b][color=MAROON]([/color][/b]list [color=#2f4f4f]"CLIPROMPTLINES"[/color] [color=#2f4f4f]"CMDECHO"[/color] [color=#2f4f4f]"BLIPMODE"[/color] [color=#2f4f4f]"NOMUTT"[/color][b][color=MAROON])[/color][/b]
  23.                 [b][color=MAROON]([/color][/b]list 3 0 0 0[b][color=MAROON])[/color][/b]
  24.         [b][color=NAVY])[/color][/b]
  25. [b][color=FUCHSIA])[/color][/b]
  26. [b][color=FUCHSIA]([/color][/b]setq sUndo [b][color=NAVY]([/color][/b]vla-StartUndoMark [b][color=MAROON]([/color][/b]vla-get-ActiveDocument [b][color=GREEN]([/color][/b]vlax-get-acad-object[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  27. [b][color=FUCHSIA]([/color][/b]mapcar '[b][color=NAVY]([/color][/b]lambda [b][color=MAROON]([/color][/b] n v / [b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setvar n v[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]mapcar 'car SysVarLst[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]mapcar 'caddr SysVarLst[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  28. [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]/= [b][color=MAROON]([/color][/b]getvar 'errno[b][color=MAROON])[/color][/b] 52[b][color=NAVY])[/color][/b] [color=#8b4513]; enclose in a loop, until we have the correct entity[/color]
  29.         [b][color=NAVY]([/color][/b]setq e [b][color=MAROON]([/color][/b]car [b][color=GREEN]([/color][/b]entsel [color=#2f4f4f]"\nSelect attributed dynamic block: "[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  30.         [b][color=NAVY]([/color][/b]cond
  31.                 [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= [b][color=BLUE]([/color][/b]getvar 'errno[b][color=BLUE])[/color][/b] 7[b][color=GREEN])[/color][/b]
  32.                         [b][color=GREEN]([/color][/b]princ [color=#2f4f4f]"\nMissed, try again!"[/color][b][color=GREEN])[/color][/b][color=#8b4513]; non-nil return - stay in loop[/color]
  33.                         [b][color=GREEN]([/color][/b]setvar 'errno 0[b][color=GREEN])[/color][/b][color=#8b4513]; restore the 'errno' variable[/color]
  34.                 [b][color=MAROON])[/color][/b]
  35.                 [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]not [b][color=BLUE]([/color][/b]= [b][color=RED]([/color][/b]type e[b][color=RED])[/color][/b] 'ENAME[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][color=#8b4513]; user pressed enter[/color]
  36.                         [b][color=GREEN]([/color][/b]princ [color=#2f4f4f]"\nUser pressed enter, exiting."[/color][b][color=GREEN])[/color][/b]
  37.                         [b][color=GREEN]([/color][/b]setvar 'errno 52[b][color=GREEN])[/color][/b][color=#8b4513]; exit loop[/color]
  38.                         [b][color=GREEN]([/color][/b]setq e nil enx nil o nil[b][color=GREEN])[/color][/b][color=#8b4513]; don't proceed with the routine[/color]
  39.                 [b][color=MAROON])[/color][/b]
  40.                 [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]/= [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 0 [b][color=PURPLE]([/color][/b]entget e[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [color=#2f4f4f]"INSERT"[/color][b][color=GREEN])[/color][/b]
  41.                         [b][color=GREEN]([/color][/b]princ [color=#2f4f4f]"\nYou must select a block!"[/color][b][color=GREEN])[/color][/b][color=#8b4513]; non-nil return - stay in loop[/color]
  42.                 [b][color=MAROON])[/color][/b]
  43.                 [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= [b][color=BLUE]([/color][/b]vlax-get [b][color=RED]([/color][/b]vlax-ename->vla-object e[b][color=RED])[/color][/b] 'IsDynamicBlock[b][color=BLUE])[/color][/b] :vlax-false[b][color=GREEN])[/color][/b]
  44.                         [b][color=GREEN]([/color][/b]princ [color=#2f4f4f]"\nThe selected block is not dynamic! "[/color][b][color=GREEN])[/color][/b][color=#8b4513]; non-nil return - stay in loop[/color]
  45.                 [b][color=MAROON])[/color][/b]
  46.                 [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]or [b][color=BLUE]([/color][/b]/= [b][color=RED]([/color][/b]cdr [b][color=PURPLE]([/color][/b]assoc 66 [b][color=TEAL]([/color][/b]entget e[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] 1[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]= [b][color=RED]([/color][/b]vlax-get [b][color=PURPLE]([/color][/b]vlax-ename->vla-object e[b][color=PURPLE])[/color][/b] 'HasAttributes[b][color=RED])[/color][/b] :vlax-false[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  47.                         [b][color=GREEN]([/color][/b]princ [color=#2f4f4f]"\nThe selected block is not attributed! "[/color][b][color=GREEN])[/color][/b][color=#8b4513]; non-nil return - stay in loop[/color]
  48.                 [b][color=MAROON])[/color][/b]
  49.                 [b][color=MAROON]([/color][/b]T
  50.                         [b][color=GREEN]([/color][/b]setq enx [b][color=BLUE]([/color][/b]entget e[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  51.                         [b][color=GREEN]([/color][/b]setq o [b][color=BLUE]([/color][/b]vlax-ename->vla-object e[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  52.                         [b][color=GREEN]([/color][/b]setvar 'errno 52[b][color=GREEN])[/color][/b][color=#8b4513]; we got the correct entity - exit loop[/color]
  53.                 [b][color=MAROON])[/color][/b]
  54.         [b][color=NAVY])[/color][/b][color=#8b4513]; cond[/color]
  55. [b][color=FUCHSIA])[/color][/b][color=#8b4513]; while[/color]
  56. [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]and e enx o[b][color=NAVY])[/color][/b]
  57.         [b][color=NAVY]([/color][/b]progn
  58.                 [b][color=MAROON]([/color][/b]setq EffName [b][color=GREEN]([/color][/b]vlax-get o 'EffectiveName[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  59.                 [b][color=MAROON]([/color][/b]setq SSX [b][color=GREEN]([/color][/b]ssget [color=#2f4f4f]"_X"[/color] [b][color=BLUE]([/color][/b]list [b][color=RED]([/color][/b]assoc 0 enx[b][color=RED])[/color][/b][b][color=RED]([/color][/b]cons 410 [b][color=PURPLE]([/color][/b]getvar 'ctab[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  60.                 [b][color=MAROON]([/color][/b]repeat [b][color=GREEN]([/color][/b]setq i [b][color=BLUE]([/color][/b]sslength SSX[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  61.                         [b][color=GREEN]([/color][/b]setq en [b][color=BLUE]([/color][/b]ssname SSX [b][color=RED]([/color][/b]setq i [b][color=PURPLE]([/color][/b]1- i[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  62.                         [b][color=GREEN]([/color][/b]setq SSX-Lst [b][color=BLUE]([/color][/b]cons en SSX-Lst[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  63.                 [b][color=MAROON])[/color][/b][color=#8b4513]; repeat[/color]
  64.                 [b][color=MAROON]([/color][/b]if SSX-Lst
  65.                         [b][color=GREEN]([/color][/b]progn
  66.                                 [b][color=BLUE]([/color][/b]setq BlksLst
  67.                                         [b][color=RED]([/color][/b]vl-remove-if-not [b][color=PURPLE]([/color][/b]function [b][color=TEAL]([/color][/b]lambda [b][color=OLIVE]([/color][/b]x[b][color=OLIVE])[/color][/b] [b][color=OLIVE]([/color][/b]eq [b][color=GRAY]([/color][/b]vlax-get x 'EffectiveName[b][color=GRAY])[/color][/b] EffName[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b]
  68.                                         [b][color=PURPLE]([/color][/b]mapcar 'vlax-ename->vla-object SSX-Lst[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  69.                                 [b][color=BLUE])[/color][/b]
  70.                                 [b][color=BLUE]([/color][/b]setq TempSS [b][color=RED]([/color][/b]ssadd[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  71.                                 [b][color=BLUE]([/color][/b]foreach b BlksLst
  72.                                         [b][color=RED]([/color][/b]vla-GetBoundingBox b 'll 'ur[b][color=RED])[/color][/b]
  73.                                         [b][color=RED]([/color][/b]vla-ZoomWindow [b][color=PURPLE]([/color][/b]vlax-get-acad-object[b][color=PURPLE])[/color][/b] ll ur[b][color=RED])[/color][/b][color=#8b4513]; zoom to it[/color]
  74.                                         [b][color=RED]([/color][/b]ssadd [b][color=PURPLE]([/color][/b]vlax-vla-object->ename b[b][color=PURPLE])[/color][/b] TempSS[b][color=RED])[/color][/b]
  75.                                         [b][color=RED]([/color][/b]sssetfirst nil TempSS[b][color=RED])[/color][/b][color=#8b4513]; grip it[/color]
  76.                                         [b][color=RED]([/color][/b]foreach att [b][color=PURPLE]([/color][/b]vlax-safearray->list [b][color=TEAL]([/color][/b]vlax-variant-value [b][color=OLIVE]([/color][/b]vla-GetAttributes b[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b]
  77.                                                 [b][color=PURPLE]([/color][/b]setq str
  78.                                                         [b][color=TEAL]([/color][/b]getstring t [b][color=OLIVE]([/color][/b]strcat [color=#2f4f4f]"\nInput value for the "[/color][color=#2f4f4f]" [b][color=GRAY]([/color][/b]vla-get-TagString att[b][color=GRAY])[/color][/b] "[/color]\[color=#2f4f4f]" tag
  79.                                                         \n < "[/color][color=#2f4f4f]" [b][color=GRAY]([/color][/b]vla-get-TextString att[b][color=GRAY])[/color][/b] "[/color]\[color=#2f4f4f]" > or press ENTER to skip :"[/color][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b]
  80.                                                 [b][color=PURPLE])[/color][/b]
  81.                                                 [b][color=PURPLE]([/color][/b]if [b][color=TEAL]([/color][/b]/= str [color=#2f4f4f]""[/color][b][color=TEAL])[/color][/b] [b][color=TEAL]([/color][/b]vlax-put att 'TextString str[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b]
  82.                                         [b][color=RED])[/color][/b]
  83.                                         [b][color=RED]([/color][/b]vla-update b[b][color=RED])[/color][/b][color=#8b4513]; update the block, necessary?[/color]
  84.                                         [b][color=RED]([/color][/b]if [b][color=PURPLE]([/color][/b]not c[b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]setq c [b][color=TEAL]([/color][/b]length BlksLst[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  85.                                         [b][color=RED]([/color][/b]princ [b][color=PURPLE]([/color][/b]strcat [color=#2f4f4f]"\nMoving on to the next block, "[/color] [b][color=TEAL]([/color][/b]itoa [b][color=OLIVE]([/color][/b]setq c [b][color=GRAY]([/color][/b]1- c[b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b] [color=#2f4f4f]" remaining!"[/color][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  86.                                         [b][color=RED]([/color][/b]sssetfirst nil nil[b][color=RED])[/color][/b][color=#8b4513]; ungrip it[/color]
  87.                                         [b][color=RED]([/color][/b]ssdel [b][color=PURPLE]([/color][/b]vlax-vla-object->ename b[b][color=PURPLE])[/color][/b] TempSS[b][color=RED])[/color][/b]
  88.                                 [b][color=BLUE])[/color][/b][color=#8b4513]; foreach[/color]
  89.                         [b][color=GREEN])[/color][/b][color=#8b4513]; progn[/color]
  90.                        
  91.                 [b][color=MAROON])[/color][/b][color=#8b4513]; if SSX-Lst[/color]
  92.                 [b][color=MAROON]([/color][/b]princ [color=#2f4f4f]"\nCongratulations, you are done!"[/color][b][color=MAROON])[/color][/b]
  93.                 [b][color=MAROON]([/color][/b]vla-ZoomExtents [b][color=GREEN]([/color][/b]vlax-get-acad-object[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][color=#8b4513]; not sure how to restore the zoom to the original state[/color]
  94.                 [b][color=MAROON]([/color][/b]vla-Regen [b][color=GREEN]([/color][/b]vla-get-ActiveDocument [b][color=BLUE]([/color][/b]vlax-get-acad-object[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] acActiveViewport[b][color=MAROON])[/color][/b]
  95.         [b][color=NAVY])[/color][/b][color=#8b4513]; progn[/color]
  96. [b][color=FUCHSIA])[/color][/b][color=#8b4513]; if [b][color=FUCHSIA]([/color][/b]and e enx o[b][color=FUCHSIA])[/color][/b][/color]
  97. [b][color=FUCHSIA]([/color][/b]mapcar '[b][color=NAVY]([/color][/b]lambda [b][color=MAROON]([/color][/b] n v / [b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setvar n v[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]mapcar 'car SysVarLst[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]mapcar 'cadr SysVarLst[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  98. [b][color=FUCHSIA]([/color][/b]if sUndo [b][color=NAVY]([/color][/b]vla-EndUndoMark [b][color=MAROON]([/color][/b]vla-get-ActiveDocument [b][color=GREEN]([/color][/b]vlax-get-acad-object[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  99. [b][color=FUCHSIA]([/color][/b]princ[b][color=FUCHSIA])[/color][/b]
  100. [b][color=BLACK])[/color][/b][color=#8b4513];| defun |; [b][color=BLACK]([/color][/b]vl-load-com[b][color=BLACK])[/color][/b] [b][color=BLACK]([/color][/b]princ[b][color=BLACK])[/color][/b][/color]

 
更新的代码。
 
出现了几个问题:
在调用例程之前,是否可以恢复原始的“zoomwindow”状态?
有什么意见吗?如何在*error*defun内正确设置“undo”操作和UndoMark?
 
写这篇文章很有趣,也许LM的代码做得更好。
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:54:59 | 显示全部楼层
 
谢谢你发帖。不幸的是,我没有说我也在Mac上使用ACAD,在谷歌搜索了一些之后,我意识到有些LISP例程将无法运行。我真的很感谢你花时间写这篇文章。我希望我能测试一下。
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 18:03:55 | 显示全部楼层
 
我相信李可以这样做,在你的Mac上工作。我猜想/记得Mac OS不支持visual lisp。
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:06:48 | 显示全部楼层
 
我希望如此!我在网上找到的
  1. ;; Formerly TIP 1011: ME.LSP (C)1994, Gary Goode
  2. ;; (I've changed the name to DD.LSP and changed the defun to DD, B.K.)
  3. ;This program will let you pick and edit multi text and attributes
  4. ;by window, pick or crossing using dialog boxes.
  5. ;-----------------------------------------------------------------
  6. (defun C:DD (/ A B C D E F G H J K L M )      
  7.   (graphscr)
  8.   (setvar "BLIPMODE" 0)
  9.   (setvar "CMDECHO" 0)
  10.   (setvar "HIGHLIGHT" 1)
  11.   (prompt "\nMulti-Edit is loaded ...  ")
  12.   (setq A (ssget) B (sslength A) C 0)                  
  13.   (while (< C B) (setq D (ssname A C) E (entget D))
  14.      (setq F (car E))
  15.      (setq G (cdr E))
  16.      (setq H (car G))
  17.      (setq J (cdr H))
  18.      (setq K "TEXT")
  19.      (setq L "INSERT")
  20.      (setq M "DIMENSION")
  21.      (if (= J K)(command ".ddedit" D ""))   
  22.      (if (= J L)(command ".ddatte" D ))
  23.      (if (= J M)(prompt "\n You picked a dimension, I only do text or attributes ..."))(terpri)  
  24.   (setq C (1+ C)))
  25.   (princ)
  26. ); end me.lsp

 
这在MAC上确实管用,它确实管用,但我必须手动遍历整个图形,并选择我想要处理的所有块。它也比较老,我相信你或李(或其他人)能做的任何事情都会更加精简。非常感谢。
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:13:27 | 显示全部楼层
谢谢李和其他人,他们帮助我解决了这个问题,并为MAC找到了一个可行的解决方案。这太棒了。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 08:17 , Processed in 0.441658 second(s), 74 queries .

© 2020-2025 乐筑天下

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