 - ;| (make*blk ss pt) = 用选集造无名块------------------ok!!------lxx.2004.2
- 参数: ss = 要加入无名块的实体选集.
- pt = 块定义点.
- 返回: 成功返回新定义的块表. 失败返回 nil.
- 测试: (make*blk (ssget) (setq pt (getpoint)))
- |;
- (defun make*blk (ss pt / i ent blk)
- ;;造快表开始标志实体.
- (entmake (list'(0 . "BLOCK");实体名.
- '(2 . "*U");无名块名称.
- '(70 . 1) ;无名块标志.
- (cons 10 pt);插入点.可用(getpoint)另外定义.
- )
- )
- (setq i -1)
- (repeat (sslength ss)
- (setq ent (ssname ss (setq i (1+ i))))
- (entmake (entget ent))
- (entdel ent)
- )
- ;;造块表结束标志实体.
- (setq blk (entmake '((0 . "ENDBLK"))));;返回以上块定义.
- ;(vl-cmdf ".erase" ss "")
- (if blk ;如果造块成功.插入一个实例.
- (entmake (list (cons 0 "INSERT") ;生成块实体(和块定义是不同的).
- (cons 2 blk) ;组码2引用块定义.
- (cons 10 pt) ;块插入点,按定义点.
- )
- )
- )
- (princ "\n已经做成无名块:")(princ blk)
- )
|