本帖最后由 菜卷鱼 于 2015-10-31 16:15 编辑
有一个没按顺序的
 - (defun osbe ( )
- (setq os-mode (getvar 'osmode))
- (setvar 'osmode 0)
- )
- (defun ose ( )
- (setvar 'osmode os-mode)
- )
- (vl-load-com)
- (defun c:hk ( / name i ar10 ar41 ar42 ar43 ar50 ssa ss info nar41 *error*)
- (defun *error* (s)
- (command "_.undo" "e")
- (setvar 'nomutt 0)
- (setvar 'cmdecho 1)
- )
- (princ "替换块")
- (if (/= namei nil)
- (mapcar 'princ (list "\n输入新的块名:<" namei ">"))
- (mapcar 'princ (list "\n输入新的块名:" ))
- )
- (setq name (getstring ))
- (if (or(= name "")(= name nil))(setq name namei)(setq namei name))
- (setq ss (ssget '((0 . "insert"))))
- (setq i 0)
- (setvar "cmdecho" 0)
- (command "_.undo" "be")
- (osbe)
- (repeat (sslength ss)
- (setq ssa(ssname ss i))
- (setq info (entget ssa))
- (setq ar10 (cdr (assoc 10 info)))
- (setq ar41 (cdr (assoc 41 info)))
- (setq ar42 (cdr (assoc 42 info)))
- (setq ar43 (cdr (assoc 43 info)))
- (setq ar50 (cdr (assoc 50 info)))
- (setvar "attreq" 0)
- (if (OR(= name "C")(= name "c"))
- (progn
- (if (= i 0)
- (setq nar41(getreal "\n输入半径:<10>")))
- (if (= nar41 nil)(setq nar41 10))
- (progn (setvar 'nomutt 1)
- (command "circle" ar10 nar41)
- (setvar 'nomutt 0))
- )
- (progn
- (setq mspace (vla-get-modelspace
- (vla-get-activedocument (vlax-get-acad-object))
- )
- )
- (setq 3dp (vlax-3D-point ar10))
- (vla-InsertBlock mspace 3dp name ar41 ar42 ar43 ar50)
- )
- )
- (entdel (ssname ss i))
- (setq i (1+ i))
- ) ;;;repeat
- (ose)
- (command "_.undo" "e")
- (princ (strcat "\n完成" (itoa (sslength ss)) "次替换"))
- (setvar "cmdecho" 1)
- (prin1)
- )
|