218
699
483
顶梁支柱
使用道具 举报
5
34
29
初来乍到
(defun C:DIMSPLIT (/ OBJ_PICK DIM_PICK DIM_ENT DIM_NODE1 DIM_NODE2 DIM_DEFDIM_POINT DIM_OBJ) ;(STORE) (command ".undo" "group") ;(setvar "osmode" 183) (setq DIM_PICK 1) (while (and DIM_PICK (/= OBJ_PICK "DIMENSION")) (setq DIM_PICK (entsel "\nSelect Dimension: ")) (if DIM_PICK (progn (setq OBJ_PICK (cdr (assoc 0 (entget (car DIM_PICK)))) DIM_ENT (entget (car DIM_PICK)) ) (if (/= OBJ_PICK "DIMENSION") (prompt "\nThis is not a Dimensionobject.")) ) ) ) (if (or (= (cdr (assoc 70 DIM_ENT)) 32) ; IF ALIGNED OR ROTATED DIMENSION (= (cdr (assoc 70 DIM_ENT)) 160) (= (cdr (assoc 70 DIM_ENT)) 33) (= (cdr (assoc 70 DIM_ENT)) 161) ) (progn (setq DIM_NODE1 (cdr (assoc 13 DIM_ENT)) DIM_NODE2 (cdr (assoc 14 DIM_ENT)) DIM_DEF (cdr (assoc 10 DIM_ENT)) DIM_POINT (getpoint "\nPick split point: ") ) (if DIM_POINT (progn (if (or (= (cdr (assoc 70 DIM_ENT)) 33) (= (cdr (assoc 70DIM_ENT)) 161)) ; IF ALIGNED DIMENSION, RESET SPLIT POINT TO ALIGN BETWEENNODES (setq DIM_POINT (inters (polar DIM_POINT (angle DIM_DEFDIM_NODE2) 12.0) DIM_POINT DIM_NODE1 DIM_NODE2 nil)) ) (setq DIM_OBJ (subst (cons 13 DIM_POINT) (assoc 13 DIM_ENT)DIM_ENT)) (entmod DIM_OBJ) (command "copy" DIM_PICK "" DIM_POINT DIM_POINT) (setq DIM_ENT (entget (entlast)) DIM_OBJ (subst (cons 14 DIM_NODE1) (assoc 14 DIM_ENT)DIM_ENT) ) (entmod DIM_OBJ) ) ) ) (if DIM_PICK (prompt "\nThis is neither a Rotated nor an AlignedDimension.")) ) (command ".undo" "end") ;(RESTORE) (princ))(defun C:DIMJOIN (/ OBJ1_PICK DIM1_PICK DIM1_ENT DIM1_NODE1 DIM1_NODE2DIM1_OBJ OBJ2_PICK DIM2_PICK DIM2_ENT DIM2_NODE1 DIM2_NODE2DIMCASE) ;(STORE) (command ".undo" "group") ;(setvar "osmode" 183) (setq DIM1_PICK 1 DIM2_PICK 1 ) (while (and DIM1_PICK (/= OBJ1_PICK "DIMENSION")) (setq DIM1_PICK (entsel "\nSelect First Dimension: ")) (if DIM1_PICK (progn (setq OBJ1_PICK (cdr (assoc 0 (entget (car DIM1_PICK)))) DIM1_ENT (entget (car DIM1_PICK)) ) (if (/= OBJ1_PICK "DIMENSION") (prompt "\nThis is not a Dimensionobject.")) ) ) ) (if (or (= (cdr (assoc 70 DIM1_ENT)) 32) ; IF ALIGNED OR ROTATED DIMENSION (= (cdr (assoc 70 DIM1_ENT)) 160) (= (cdr (assoc 70 DIM1_ENT)) 33) (= (cdr (assoc 70 DIM1_ENT)) 161) ) (progn (if (= OBJ1_PICK "DIMENSION") (progn (while (and DIM2_PICK (/= OBJ2_PICK "DIMENSION")) (setq DIM2_PICK (entsel "\nSelect Second Dimension: ")) (if DIM2_PICK (progn (setq OBJ2_PICK (cdr (assoc 0 (entget (car DIM2_PICK)))) DIM2_ENT (entget (car DIM2_PICK)) ) (if (/= OBJ2_PICK "DIMENSION") (prompt "\nThis is not aDimension object.")) ) ) ) (if (or (= (cdr (assoc 70 DIM2_ENT)) 32) ; IF ALIGNED OR ROTATEDDIMENSION (= (cdr (assoc 70 DIM2_ENT)) 160) (= (cdr (assoc 70 DIM2_ENT)) 33) (= (cdr (assoc 70 DIM2_ENT)) 161) ) (progn (setq DIM1_NODE1 (cdr (assoc 13 DIM1_ENT)) DIM1_NODE2 (cdr (assoc 14 DIM1_ENT)) DIM2_NODE1 (cdr (assoc 13 DIM2_ENT)) DIM2_NODE2 (cdr (assoc 14 DIM2_ENT)) ) (if (= (fix (distance DIM1_NODE2 DIM2_NODE1)) 0.0) (setq DIM1_OBJ (subst (cons 14 DIM2_NODE2) (assoc 14 DIM1_ENT)DIM1_ENT) DIMCASE 1) ) (if (= (fix (distance DIM1_NODE2 DIM2_NODE2)) 0.0) (setq DIM1_OBJ (subst (cons 14 DIM2_NODE1) (assoc 14