列出替代nam的例程
你好不知是否有人能帮我做这件事。我通过类似的线索看了一眼,但似乎找不到我想要的东西。
我需要一个lisp,它基本上完成了块替换所做的事情,但没有选择块所需的用户输入。
假设我有一个名为“Circle 102”的块,我总是想用另一个名称替换这个Circle 102块。e、 g“块1”
然后可以用另一个“块2”来“圈103”
等等等等。
如果有人能帮我解决这个问题,我会绞尽脑汁。
干杯 嗨,Mattdalgety,欢迎收看CadTutor
我有一条自己的(但它有点像一条龙):http://www.cadtutor.net/forum/showthread.php?100670-RlxBlk Replace重定义块可见性状态预览和链接属性&高亮显示=RlxBlk
我相信塔瓦特有一个更友好的使用,但不能这么快找到它,所以希望他阅读这篇文章并回复。
仅找到此网站:https://autolispprograms.wordpress.com/hvac/hvac-application/
啊,找到了:https://apps.autodesk.com/ACD/en/Detail/Index?id=4002734712009543256&appLang=en&os=Win32_64
最后但并非最不重要的一点,我相信李大师在他辉煌的网站上有一些东西:http://www.lee-mac.com/index.html
gr.Rlx 谢谢你,朋友,看看你的日常生活,它看起来比我想要的要复杂一点。
本质上,我只需要一个“哑”lisp例程,我可以设置一次,然后离开它。
ie运行命令,并用其他指定块替换所有指定块。
例如,块1替换块a
块2替换块b
块3替换块c等。
我使用它的目的是转换导出的喷水器符号(或者我应该说是直线和圆)从revit到我自己的区块。
当revit to cad将其导出为圆弧和圆时,我使用命令根据半径将其转换为块,然后使用“块替换”(block replace)将blockname:radius200替换为blockname:springrupright。
现在,我需要手动选择每个区块。
我期待着简化这一点,使它点击一次,并取代所有预定义的块名。
感谢Rlx的推荐。
我想这就是OP想要的。用另一个块替换块 谢谢各位,
看起来仍然不是我想要的。
这些例程对于用户输入来说有点太复杂了
我真正想要的是一个简化版的blockreplace,它不是用户选择要替换的块然后替换它,而是我能够键入块名并将其保存到例程中,这样命令就不必每次都暂停用户输入。
例如,运行例程
lisp查找所有块标题“blocka.dwg”
更换所有blocka。带块b.dwg的图纸。
然后搜索下一个。
查找所有块标题“blockc.dwg”
更换所有blockc。带有块d.dwg的dwg。
等等
不幸的是,我还没有为我的应用程序实现多个块和脚本模式,有人刚刚给了我大量的工作,尽管如果块不是动态的,没有需要迁移的属性,这可能会相对简单。
但为了给出提示,您可以使用insert命令中的=选项:-insert“BlockA=c:/temp/BlockB”将用“BlockB”的定义重新定义所有名为“BlockA”的块(但名称仍为BlockA),或者,只在文件中命名BlockB也为BlockA。请注意专家变量的设置。在0,0上插入一次,例如,entdel entlast,et voila。。。
gr.Rlx 你好
一种快速代码,只适用于常规块(非动态块或属性块)。
(defun c:repblocks (/ blk1 blk2 msg1 msg2 doc)
;; Tharwat - Date: 12.Jan.2018 ;;
(setq blk1 "BlockA"
blk2 "BlockB"
msg1 "Block name <"
msg2 "> could not be found in this drawing <!>"
doc(vla-get-activedocument (vlax-get-acad-object))
)
(if
(and (or (setq sel (ssget "_X" (list '(0 . "INSERT") (cons 2 blk1))))
(alert (strcat msg1 blk1 msg2))
)
(or (tblsearch "BLOCK" blk2)
(alert (strcat msg1 blk2 msg2))
)
)
(vlax-for spc (vla-get-blocks doc)
(if (= (vla-get-islayout spc) :vlax-true)
(vlax-for blk spc
(and (= "AcDbBlockReference" (vla-get-objectname blk))
(= (vla-get-name blk) blk1)
(vla-insertblock
spc
(vla-get-insertionpoint blk)
blk2
(vla-get-xscalefactor blk)
(vla-get-yscalefactor blk)
(vla-get-zscalefactor blk)
(vla-get-rotation blk)
)
(vla-delete blk)
)
)
)
)
)
(princ)
) (vl-load-com)
Tharwat简洁而美丽
非常感谢。 工作起来很有魅力。
干杯,伙计们,绝对的传奇。
页:
[1]
2