- ;快速标注
- (defun c:tt(/ bak_lay dimx_com dimx_lst dimy_com dimy_lst p1 p2 p3 ss sspt ss_lst x)
- (if(and (setq ss(ssget '((0 . "line")(8 . "图层1"))))(> (sslength ss) 1))
- (progn
- (setvar 'cmdecho 0)
- (setq bak_lay(getvar 'clayer))
- (setvar 'clayer "dim")
- (setq ss_lst(sk_ss->lst ss))
- (mapcar 'sk_line_ch_ang ss_lst)
- (setq sspt(mapcar '(lambda (x)(cons (sk_dxf x 10) x)) ss_lst))
- (setq ss_lst(vl-sort ss_lst '(lambda(e1 e2)(if (equal (cadr (sk_dxf e1 10))(cadr (sk_dxf e2 10)) 1e-8)(< (car (sk_dxf e1 10))(car (sk_dxf e2 10)))(< (cadr (sk_dxf e1 10))(cadr (sk_dxf e2 10)))))))
- (setq dimx_lst(mapcar '(lambda (x)(list (sk_dxf x 10) (sk_dxf x 11))) ss_lst))
- (setq dimy_lst(mapcar '(lambda (x)(list (sk_dxf x 11) (sk_dxf x 10))) ss_lst))
- (setq dimx_com(sk_com3 dimx_lst))
- (setq dimy_com(sk_com3 dimy_lst))
- (mapcar '(lambda (x)
- (setq p1 (car(car x))
- p2 (car(cadr x))
- p3 (polar p1 (angle (cadar x) p1 ) 1200))
- (vl-cmdf "_.DIMALIGNED" "_end" p1 "_end" p2 "_non" p3)
- )
- dimx_com)
- (mapcar '(lambda (x)
- (setq p1 (car(car x))
- p2 (car(cadr x))
- p3 (polar p1 (angle (cadar x) p1 ) 1200))
- (vl-cmdf "_.DIMALIGNED" "_end" p1 "_end" p2 "_non" p3)
- )
- dimy_com)
- (and bak_lay (setvar 'clayer bak_lay))
- (setvar 'cmdecho 1)
- )
- )
- (princ)
- )
- ;; 直线格式化xyp
- (defun sk_line_ch_ang (en / ang p1 p2 elist)
- (setq p1 (sk_dxf en 10 )
- p2 (sk_dxf en 11 )
- ang (angle p1 p2)
- elist(entget en)
- )
- (if (or (equal ang pi 1e-3)
- (and (>= ang pi)
- (not (equal ang (* 2 pi) 1e-3))
- )
- )
- (progn
- (setq elist(subst (cons 10 p2)(assoc 10 elist) elist)
- elist(subst (cons 11 p1)(assoc 11 elist) elist))
- (entmod elist)
- )
- )
- en
- )
- ;;选择集转表
- (defun sk_ss->lst (SS)
- (vl-remove-if-not '(lambda(X)(= (type X) 'ENAME)) (mapcar 'cadr (ssnamex SS)))
- )
- ;;组合函数3表中相邻元素组成新表
- (defun sk_com3(lst)
- (if(cdr lst)
- (append (list(list (car lst)(cadr lst)))(sk_com3 (cdr lst)) )
- )
- )
- ;;;组码值提取(sk_dxf 图元名 组码)
- (defun sk_dxf(en code)
- (if(and(=(type en) 'ENAME)(= (type code) 'INT))
- (cdr(assoc code (entget en))))
- )
|