tm20038175 发表于 2012-5-10 19:18:09

无名块不能编辑问题!

如何才能做到编辑无名块呀,双击不能编辑!
或者高手能否提供一个批量改无名块为有名块程序,名字根据年月日小时分秒命名。

xiaxiang 发表于 2012-5-10 20:40:18

本帖最后由 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)

印象里论坛里肯定有这样的程序。。。
是这个吧

xiaoyingzi 发表于 2012-5-10 20:23:31

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=85186

tm20038175 发表于 2012-5-10 21:49:24

xiaxiang 发表于 2012-5-10 20:40
印象里论坛里肯定有这样的程序。。。
是这个吧

谢谢,明天去试试。。。。

tm20038175 发表于 2012-5-10 21:50:05

xiaoyingzi 发表于 2012-5-10 20:23
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=85186

也同样感谢你。。。。

幸福是真 发表于 2013-9-21 14:59:56

xiaxiang 发表于 2012-5-10 20:40 static/image/common/back.gif
印象里论坛里肯定有这样的程序。。。
是这个吧

谢谢分享……
页: [1]
查看完整版本: 无名块不能编辑问题!