本帖最后由 fl202 于 2013-10-17 09:40 编辑
lingduwx 发表于 2013-10-16 13:41 
不好意思,可能是我没有讲完
上面我想讲的是具体操作过程想怎么样做,可能表述有点不准确,下面的内容是 ...
原句上修改:在第一次选择到块时,缩放该类块;在选择空时,缩放第二次选择范围内所有的块。
其实这样还是不太好,我感觉这种选择方式有可能误选不需要缩放的块。
另:也可以做成dcl的,会更好用。 - (defun c:bf1 ()
- (command "_.undo" "_begin")
- ;(setq old_err *error* *error* Sb_err)
- (setq ss nil bnm nil)
- (if (and
- (princ "\n请选择需缩放的块:")
- (setq ss (ssget '((0 . "INSERT"))))
- )
- (progn
- (setq i 0 bnm (cdr(assoc 2 (entget(ssname ss 0)))))
- (repeat (1- (sslength ss))
- (setq ent (entget(ssname ss (setq i (1+ i))))
- bnm (strcat bnm "," (cdr(assoc 2 ent))))
- )
- ) )
- (initget 7)
- (setq blkfactor (getreal "\n请输入缩放倍数:"))
- (if bnm
- (setq blksset (ssget (list (cons 0 "INSERT") (cons 2 bnm))))
- (setq blksset (ssget (list (cons 0 "INSERT") )))
- )
- (setq donecount 0)
- (setvar "osmode" 0)
- (repeat (sslength blksset)
- (setq temp (ssname blksset donecount))
- (setq templist (entget temp))
- (setq blkbasept (cdr (assoc 10 templist)))
- (command "scale" temp "" blkbasept blkfactor) (princ (list blkbasept blkfactor))
- ;(command "scale" temp "" blkbasept blkfactor ^c)
- (setq donecount (1+ donecount))
- )
- (setvar "osmode" 767)
- (princ (strcat "\n完成缩放 " (itoa donecount) " 个名称为"" bnm ""的块." ) )
-
- (command "_.undo" "_end")
- (princ)
- )

有点不对啊,怎么3k分,49个明经币的还要我帮助???给我点! |