无名块不能编辑问题!
如何才能做到编辑无名块呀,双击不能编辑!或者高手能否提供一个批量改无名块为有名块程序,名字根据年月日小时分秒命名。 本帖最后由 xiaxiang 于 2012-5-10 20:52 编辑
;|
2011年12月26日改编、加编、优化,批量改匿名块及时间块名。
实际上是2个程序,2合一了。
1.可以批量将块改为匿名块
2.可以批量将块改为以当前时间命名的块(包含将匿名块恢复为实名块)。
3.用途:a.在插入块的时候下拉列表很长的时候你根本找不到你要插的块时候,用它方便。
b.将匿名块恢复实名块,可以编辑它了。
4.命令:linminkuai
|;
(defun C:linminkuai (/ ss2 ss1*APP *DOC A AA apple_sel apple_nnblk i bbb)
(setq ss2 (uINT 1 "" "1.改成无名块,2.匿名块恢复为时间块名" 1))
(if (= 1 ss2)
(prompt "\n 选要改动无名块的图元:")
(prompt "\n 选要改动时间块名的图元:")
)
(if (= 1 ss2)
(setq A "*U")
(setq A (rtos (* (getvar "CDATE") 1E8)))
)
(setq AA 1)
(setq bbb nil)
(if (setq ss1 (ssget (list (cons 0 "INSERT"))))
(progn
(setq osmode (getvar "osmode"))
(setvar "osmode" 0)
(setq i 0)
(vl-load-com)
(setq *APP (vlax-get-acad-object))
(setq *DOC (vla-get-activeDocument *APP))
(while
(setq apple_sel (ssname ss1 i))
(if (= 1 ss2)
(setq A "*U")
(setq A (rtos (1+ (atof A))))
)
(setq AA 0)
(if (member (cdr (assoc 2 (entget apple_sel))) bbb)
(setq AA 1)
(setq bbb (append bbb (list A)))
)
(setq apple_nnblk (vlax-ename->vla-object apple_sel))
(if
(and(= (vla-get-objectname apple_nnblk) "AcDbBlockReference")
(= AA 0)
)
(vla-put-name
(vla-item
(vla-get-blocks
(vla-get-activedocument (vlax-get-acad-object))
)
(vla-get-name apple_nnblk)
)
A
)
)
(setq i (1+ i))
)
(if (= ss2 2)
(progn
(vla-auditinfo *Doc :vlax-true)
(setq A (rtos (* (getvar "CDATE") 1E8)))
(setq i 0)
(while
(setq apple_sel (ssname ss1 i))
(if (= 1 ss2)
(setq A "*U")
(setq A (rtos (1+ (atof A))))
)
(setq apple_nnblk (vlax-ename->vla-object apple_sel))
(if (= (vla-get-objectname apple_nnblk)
"AcDbBlockReference"
)
(vla-put-name
(vla-item
(vla-get-blocks
(vla-get-activedocument (vlax-get-acad-object))
)
(vla-get-name apple_nnblk)
)
A
)
(princ "\n######---选择物体非块---######")
)
(setq i (1+ i))
)
)
)
(setvar "osmode" osmode)
) ;progn
) ;if
(princ)
) ;defun
(defun uint (bit kwd msg def / inp)
(if def
(setq msg (strcat "\n" msg "<" (itoa def) ">:") ;Test for a default
bit (- bit (boole 1 bit 1)); A default and no null bit code
) ;setq
(if(= "" (substr msg (strlen msg) 1))
(setq msg (strcat "\n" (substr msg 1 (1- (strlen msg))) ":"))
;Then strip space
;else msg is OK
(setq msg (strcat "\n" msg ":"))
)
) ;if,if
(initget bit kwd)
(setq inp (getint msg))
(if inp
inp
def
)
) ;defun
(prompt "\n批量改匿名块.LSP被装入, 命令linminkuai,2011年12月26日lixuedong改制")
(princ)
印象里论坛里肯定有这样的程序。。。
是这个吧
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=85186 xiaxiang 发表于 2012-5-10 20:40
印象里论坛里肯定有这样的程序。。。
是这个吧
谢谢,明天去试试。。。。 xiaoyingzi 发表于 2012-5-10 20:23
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=85186
也同样感谢你。。。。 xiaxiang 发表于 2012-5-10 20:40 static/image/common/back.gif
印象里论坛里肯定有这样的程序。。。
是这个吧
谢谢分享……
页:
[1]