在20中替换动态块
我已经用动态积木工作了一年了。我是LISP编程新手。我从tek tips的vbcad中找到了这段代码,从我在MATLAB中的工作经验中,我似乎认识到了一些事情。因为ACAD 2010仍然缺少支持
该例程应该用另一个块替换动态块。用户选择块,并将预定义的替换块插入其位置。
但是,当我使用例程并选择一个块时,它将不允许我选择块,无论是常规块还是动态块,返回“0个选定块”。然后,该函数继续返回“未选择可替换块”
它还将设置可见性,但如果我无法选择要替换的块,则该可见性既不在这里也不在那里。
有没有关于如何使动态块可替换的想法,或者我在这里遗漏了什么。
rec.dwg将是要插入的块。test是我试图替换其中块的dwg。
-克格勃
测验图纸
记录.dwg
dyntemp。lsp 在此处找到http://forums.autodesk.com/t5/AutoCAD-Express-Tools/Block-Replace-possible-wishlist-item/m-p/361602
defun c:TEST (/ ENT1 BL1 NWNM OLD ODNM)
;;LOOKS LIKE robkimross WROTE IT IN 06-09-2005
(prompt "Select blocks to replace: ")
(and
(setq ENT1 (ssget "_:S" '((0 . "INSERT"))))
(setq NEWBL "NAME OF BLOCK WHICH TAKES THE PLACE OF OLD BLOCK")
(not (command "insert" NEWBL nil))
(setq N (sslength ENT1))
(setq I 0)
(repeat N
(setq BL1 (entget (ssname ENT1 I)))
(setq NWNM (cons 2 NEWBL))
(setq OLD (assoc 2 BL1))
(setq ODNM (cdr OLD))
(entmod (subst NWNM OLD BL1))
(setq I (1+ I))
) ;_ repeat
) ;_ and
(prin1)
) ;_ defun]
页:
[1]