本帖最后由 e2002 于 2012-4-1 16:47 编辑
 - ;;;本程序大家可随意使用,修改.
- ;;;原作者 : Gu_lx @ mjtd
- ;;;本修改版作者 : e2002 @ mjtd
- (defun C:lkpt_Dimension_Align2Rotated ( / ss ss-list en el p13 p14 ang gcode)
- (princ "\nConvert "Aligned Dimension" objects to "Rotated Dimension" objects.")
- (while (progn
- (princ "\nSelect "Aligned Dimension" objects:")
- (setq ss (ssget ":L" '((0 . "DIMENSION") (-4 . "<OR") (70 . 33) (70 . 161) (-4 . "OR>")(100 . "AcDbAlignedDimension")))) ;;!!!另存文件后,此处过滤条件中 "OR" 字符前后的的大于,小于符号要改为英文的!!!
- )
- (setq ss-list (lkvl:ss2list ss)) ;; lkvl:ss2list 是转换选择集ss为图元名列表
- (foreach en ss-list
- (setq el (entget en '("*"))
- el (vl-remove-if
- '(lambda (x)
- (or (= -1 (car x))
- (= 330 (car x))
- (= 5 (car x))
- (= 2 (car x))
- )
- )
- el
- )
- p13 (cdr (assoc 13 el))
- p14 (cdr (assoc 14 el))
- ang (angle p13 p14)
- el (append el '((100 . "AcDbRotatedDimension")))
- gcode (assoc 70 el)
- el (subst (cons 70 (1- (cdr gcode))) gcode el)
- gcode (assoc 50 el)
- el (subst (cons 50 ang) gcode el)
-
- )
- (entmake el)
- (entdel en)
- );end foreach
- );end while
- (princ)
- );end defun C:lkpt_Dimension_Align2Rotated
|