|
- ;;==快速建块(JK)=================================================================================================
- ;块名称:固定前缀+时间 (华星切割2018-09-13-16-38-32)
- ;块基点为选择集中心点
- ;原作者:namezg
- ;修改者:htlaser
- (defun c:jk (/ zg-GetSSBoundingbox blipmode_bak ss blkname ssbox basept inspt)
- ;功能:返回选择集包围盒
- ;参数: ss--选择集
- ;返回值:选择集所有实体做为整体的包围盒
- ;(setq ssbox (zg-GetSSBoundingbox (setq ss (ssget))))
- (defun zg-GetSSBoundingbox (ss / i ssn ll rr box ptlist ssbox)
- (if ss
- (progn
- (setq i -1)
- (repeat (sslength ss)
- (setq ssn (ssname ss (setq i (1+ i))))
- (vla-GetBoundingBox (vlax-ename->vla-object ssn) 'll 'rr) ;得到对象的包围盒
- (setq box (list (vlax-safearray->list ll) (vlax-safearray->list rr)))
- (setq ptlist (append box ptlist))
- )
- (setq ssbox (mapcar '(lambda (x) (apply 'mapcar (cons x ptlist))) (list 'min 'max)))
- )
- )
- )
- (vl-load-com)
- (setq ss (cadr (ssgetfirst)))
- (setvar "cmdecho" 0)
- (command "_undo" "be")
- (princ "\n选择快速创建块的对象: ")
- (if (or ss (setq ss (ssget)))
- (progn
- ;(setq blkname (rtos (* (getvar "cdate") 1e8))) ;块名称
- (setq blkname (menucmd "M=$(edtime,$(getvar,date),华星切割YYYY-MO-DD-HH-MM-SS)")) ;块名称 固定前缀+时间
- (setq ssbox (zg-GetSSBoundingbox ss))
- (setq basept (apply 'mapcar (cons (function (lambda (a b) (/ (+ a b) 2))) ssbox)))
- (if (tblsearch "layer" "DIM")
- (if (/= (getvar "clayer")"DIM")
- (setvar "clayer" "DIM")
- )
- (progn
- (command "_layer" "n" "DIM" "")
- (setvar "clayer" "DIM")
- )
- )
- (command "_.block" blkname "non" basept ss "");创建块并删除创建块的对象
- (setq inspt basept)
- (command "_.insert" blkname "x" 1 "y" 1 "z" 1 "r" 0 "non" inspt);插入块
- )
- )
- (command "_undo" "e")
- (setvar "cmdecho" 1)
- (princ)
- )
- (PROMPT "<<<========C:JK 快速建块 固定前缀+时间========>>>")
- (princ)
复制代码 |
|