samifox Posted February 23, 2016 Share Posted February 23, 2016 Hi I usually use the dim tool to set the initial position of the dim line, and then I use Continue mode to continue the line. Never understand why after the initial position setup , the continue mode is not triggered automatically? So again, 1. Picking the dim tool 2. Set the start and end point position 3. Dim tool change to continue 4. Picking next points Is there a way to program it with DIESEL ? or could be done only by a lisp? Thanks S Quote Link to comment Share on other sites More sharing options...
msirois Posted February 23, 2016 Share Posted February 23, 2016 I'm not sure if this is what you're looking for, but this is what I use in my office. I usually just draw one overall dimension and then I use this LISP to split the dimension at every point needed. You can also use it to join dimensions if you make a mistake. Command is DIMSPLIT and DIMJOIN. (defun C:DIMSPLIT (/ OBJ_PICK DIM_PICK DIM_ENT DIM_NODE1 DIM_NODE2 DIM_DEF DIM_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 Dimension object.")) ) ) ) (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 70 DIM_ENT)) 161)) ; IF ALIGNED DIMENSION, RESET SPLIT POINT TO ALIGN BETWEEN NODES (setq DIM_POINT (inters (polar DIM_POINT (angle DIM_DEF DIM_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 Aligned Dimension.")) ) (command ".undo" "end") ;(RESTORE) (princ) ) (defun C:DIMJOIN (/ OBJ1_PICK DIM1_PICK DIM1_ENT DIM1_NODE1 DIM1_NODE2 DIM1_OBJ OBJ2_PICK DIM2_PICK DIM2_ENT DIM2_NODE1 DIM2_NODE2 DIMCASE) ;(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 Dimension object.")) ) ) ) (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 a Dimension object.")) ) ) ) (if (or (= (cdr (assoc 70 DIM2_ENT)) 32) ; IF ALIGNED OR ROTATED DIMENSION (= (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 DIM1_ENT) DIM1_ENT) DIMCASE 2) ) (if (= (fix (distance DIM1_NODE1 DIM2_NODE1)) 0.0) (setq DIM1_OBJ (subst (cons 13 DIM2_NODE2) (assoc 13 DIM1_ENT) DIM1_ENT) DIMCASE 3) ) (if (= (fix (distance DIM1_NODE1 DIM2_NODE2)) 0.0) (setq DIM1_OBJ (subst (cons 13 DIM2_NODE1) (assoc 13 DIM1_ENT) DIM1_ENT) DIMCASE 4) ) (if DIMCASE (progn (entmod DIM1_OBJ) (command "erase" DIM2_PICK "") ) (prompt "\nDimensions are not coincident.") ) ) (if DIM2_PICK (prompt "\nThis is neither a Rotated nor an Aligned Dimension.")) ) ) ) ) (if DIM1_PICK (prompt "\nThis is neither a Rotated nor an Aligned Dimension.")) ) (command ".undo" "end") ;(RESTORE) (princ) ) (defun C:DIMDIVIDE (/ OBJ_PICK DIM_PICK DIM_ENT DIM_NODE1 DIM_NODE2 DIM_DEF DIM_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 Dimension object.")) ) ) ) (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 (if (not DIM_DIV) (setq DIM_DIV 2)) (initget 6) (setq DIM_DIV (DEFNUM DIM_DIV "\nNumber of divisions")) (if (and (= OBJ_PICK "DIMENSION") (> DIM_DIV 1)) (progn (setq DIM_ENT (entget (car DIM_PICK)) DIM_NODE1 (cdr (assoc 13 DIM_ENT)) DIM_NODE2 (cdr (assoc 14 DIM_ENT)) DIM_DEF (cdr (assoc 10 DIM_ENT)) DIM_POINT (polar DIM_NODE1 (angle DIM_NODE1 DIM_NODE2) (/ (distance DIM_NODE1 DIM_NODE2) DIM_DIV)) DIM_OBJ (subst (cons 14 DIM_POINT) (assoc 14 DIM_ENT) DIM_ENT) ) (entmod DIM_OBJ) (setq DIM_NODE2 (cdr (assoc 14 DIM_OBJ))) (command "copy" DIM_PICK "" DIM_NODE1 DIM_NODE2) (setq DIM_ENT (entget (entlast)) DIM_OBJ (subst (cons 10 DIM_DEF) (assoc 10 DIM_ENT) DIM_ENT) ) (entmod DIM_OBJ) (repeat (- DIM_DIV 2) (command "copy" (ENTLAST) "" DIM_NODE1 DIM_NODE2) (setq DIM_ENT (entget (entlast)) DIM_OBJ (subst (cons 10 DIM_DEF) (assoc 10 DIM_ENT) DIM_ENT) ) (entmod DIM_OBJ) ) ) ) ) (if DIM_PICK (prompt "\nThis is neither a Rotated nor an Aligned Dimension.")) ) (command ".undo" "end") ;(RESTORE) (princ) ) (defun C:DIMOFFSET (/ OBJ_PICK DIM_SIDE DIM_PICK DIM_ENT DIM_NODE1 DIM_NODE2 DIM_INT DIM_DEF DIM_POINT DIM_OBJ) ;(STORE) (command ".undo" "group") (if (not DIM_OFFS) (setq DIM_OFFS (* 0.375 (getvar "dimscale")))) (initget 2) (setq DIM_OFFS (DEFDIST DIM_OFFS "Specify offset distance")) (setq DIM_PICK 1 OBJ_PICK 1) (while (and DIM_PICK (/= OBJ_PICK "DIMENSION")) (setq DIM_PICK (entsel "\nSelect Dimension to offset: ")) (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 Dimension object.")) ) ) ) (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_SIDE (getpoint "\nSpecify point on side to offset: ")) (if DIM_SIDE (if (and (= OBJ_PICK "DIMENSION") (> DIM_OFFS 0)) (progn (setvar "osmode" 0) (setq DIM_ENT (entget (car DIM_PICK)) DIM_NODE1 (cdr (assoc 13 DIM_ENT)) DIM_NODE2 (cdr (assoc 14 DIM_ENT)) DIM_DEF (cdr (assoc 10 DIM_ENT)) DIM_INT (polar DIM_SIDE (angle DIM_DEF DIM_NODE2) 12.0) DIM_POINT (inters (polar DIM_DEF (+ (angle DIM_DEF DIM_NODE2) (DTR 90.0)) 12.0) DIM_DEF DIM_SIDE DIM_INT nil) ) (command "copy" DIM_PICK "" DIM_NODE2 (polar DIM_NODE2 (angle DIM_POINT DIM_SIDE) DIM_OFFS)) (setq DIM_ENT (entget (entlast)) DIM_OBJ (subst (cons 13 DIM_NODE1) (assoc 13 DIM_ENT) DIM_ENT) ) (entmod DIM_OBJ) (setq DIM_ENT (entget (entlast)) DIM_OBJ (subst (cons 14 DIM_NODE2) (assoc 14 DIM_ENT) DIM_ENT) ) (entmod DIM_OBJ) (setq DIM_ENT (entget (entlast)) DIM_DEF (polar DIM_DEF (angle DIM_POINT DIM_SIDE) DIM_OFFS) DIM_OBJ (subst (cons 10 DIM_DEF) (assoc 10 DIM_ENT) DIM_ENT) ) (entmod DIM_OBJ) ) ) ) ) (if DIM_PICK (prompt "\nThis is neither a Rotated nor an Aligned Dimension.")) ) (command ".undo" "end") ;(RESTORE) (princ) ) Quote Link to comment Share on other sites More sharing options...
samifox Posted February 23, 2016 Author Share Posted February 23, 2016 i'm not sure if this is what you're looking for, but this is what i use in my office. I usually just draw one overall dimension and then i use this lisp to split the dimension at every point needed. You can also use it to join dimensions if you make a mistake. Command is dimsplit and dimjoin. (defun c:dimsplit (/ obj_pick dim_pick dim_ent dim_node1 dim_node2 dim_def dim_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 dimension object.")) ) ) ) (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 70 dim_ent)) 161)) ; if aligned dimension, reset split point to align between nodes (setq dim_point (inters (polar dim_point (angle dim_def dim_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 aligned dimension.")) ) (command ".undo" "end") ;(restore) (princ) ) (defun c:dimjoin (/ obj1_pick dim1_pick dim1_ent dim1_node1 dim1_node2 dim1_obj obj2_pick dim2_pick dim2_ent dim2_node1 dim2_node2 dimcase) ;(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 dimension object.")) ) ) ) (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 a dimension object.")) ) ) ) (if (or (= (cdr (assoc 70 dim2_ent)) 32) ; if aligned or rotated dimension (= (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 dim1_ent) dim1_ent) dimcase 2) ) (if (= (fix (distance dim1_node1 dim2_node1)) 0.0) (setq dim1_obj (subst (cons 13 dim2_node2) (assoc 13 dim1_ent) dim1_ent) dimcase 3) ) (if (= (fix (distance dim1_node1 dim2_node2)) 0.0) (setq dim1_obj (subst (cons 13 dim2_node1) (assoc 13 dim1_ent) dim1_ent) dimcase 4) ) (if dimcase (progn (entmod dim1_obj) (command "erase" dim2_pick "") ) (prompt "\ndimensions are not coincident.") ) ) (if dim2_pick (prompt "\nthis is neither a rotated nor an aligned dimension.")) ) ) ) ) (if dim1_pick (prompt "\nthis is neither a rotated nor an aligned dimension.")) ) (command ".undo" "end") ;(restore) (princ) ) (defun c:dimdivide (/ obj_pick dim_pick dim_ent dim_node1 dim_node2 dim_def dim_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 dimension object.")) ) ) ) (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 (if (not dim_div) (setq dim_div 2)) (initget 6) (setq dim_div (defnum dim_div "\nnumber of divisions")) (if (and (= obj_pick "dimension") (> dim_div 1)) (progn (setq dim_ent (entget (car dim_pick)) dim_node1 (cdr (assoc 13 dim_ent)) dim_node2 (cdr (assoc 14 dim_ent)) dim_def (cdr (assoc 10 dim_ent)) dim_point (polar dim_node1 (angle dim_node1 dim_node2) (/ (distance dim_node1 dim_node2) dim_div)) dim_obj (subst (cons 14 dim_point) (assoc 14 dim_ent) dim_ent) ) (entmod dim_obj) (setq dim_node2 (cdr (assoc 14 dim_obj))) (command "copy" dim_pick "" dim_node1 dim_node2) (setq dim_ent (entget (entlast)) dim_obj (subst (cons 10 dim_def) (assoc 10 dim_ent) dim_ent) ) (entmod dim_obj) (repeat (- dim_div 2) (command "copy" (entlast) "" dim_node1 dim_node2) (setq dim_ent (entget (entlast)) dim_obj (subst (cons 10 dim_def) (assoc 10 dim_ent) dim_ent) ) (entmod dim_obj) ) ) ) ) (if dim_pick (prompt "\nthis is neither a rotated nor an aligned dimension.")) ) (command ".undo" "end") ;(restore) (princ) ) (defun c:dimoffset (/ obj_pick dim_side dim_pick dim_ent dim_node1 dim_node2 dim_int dim_def dim_point dim_obj) ;(store) (command ".undo" "group") (if (not dim_offs) (setq dim_offs (* 0.375 (getvar "dimscale")))) (initget 2) (setq dim_offs (defdist dim_offs "specify offset distance")) (setq dim_pick 1 obj_pick 1) (while (and dim_pick (/= obj_pick "dimension")) (setq dim_pick (entsel "\nselect dimension to offset: ")) (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 dimension object.")) ) ) ) (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_side (getpoint "\nspecify point on side to offset: ")) (if dim_side (if (and (= obj_pick "dimension") (> dim_offs 0)) (progn (setvar "osmode" 0) (setq dim_ent (entget (car dim_pick)) dim_node1 (cdr (assoc 13 dim_ent)) dim_node2 (cdr (assoc 14 dim_ent)) dim_def (cdr (assoc 10 dim_ent)) dim_int (polar dim_side (angle dim_def dim_node2) 12.0) dim_point (inters (polar dim_def (+ (angle dim_def dim_node2) (dtr 90.0)) 12.0) dim_def dim_side dim_int nil) ) (command "copy" dim_pick "" dim_node2 (polar dim_node2 (angle dim_point dim_side) dim_offs)) (setq dim_ent (entget (entlast)) dim_obj (subst (cons 13 dim_node1) (assoc 13 dim_ent) dim_ent) ) (entmod dim_obj) (setq dim_ent (entget (entlast)) dim_obj (subst (cons 14 dim_node2) (assoc 14 dim_ent) dim_ent) ) (entmod dim_obj) (setq dim_ent (entget (entlast)) dim_def (polar dim_def (angle dim_point dim_side) dim_offs) dim_obj (subst (cons 10 dim_def) (assoc 10 dim_ent) dim_ent) ) (entmod dim_obj) ) ) ) ) (if dim_pick (prompt "\nthis is neither a rotated nor an aligned dimension.")) ) (command ".undo" "end") ;(restore) (princ) ) its nice alternative thank u i actually want the dim tool to toggle automaticaly to continue tool after the dim line position is setted Quote Link to comment Share on other sites More sharing options...
msirois Posted February 23, 2016 Share Posted February 23, 2016 Alright so, I usually use DIMLINEAR, but trying out DIM, why don't you type in 'C' after you you draw your first dimension? C is for continue and you can keep going indefinitely. Quote Link to comment Share on other sites More sharing options...
samifox Posted February 23, 2016 Author Share Posted February 23, 2016 Alright so, I usually use DIMLINEAR, but trying out DIM, why don't you type in 'C' after you you draw your first dimension? C is for continue and you can keep going indefinitely. u mean DCO.... as i see it, after you click start and end points , the next point sould continue the dim automatically. why its not like that? Quote Link to comment Share on other sites More sharing options...
msirois Posted February 23, 2016 Share Posted February 23, 2016 u mean DCO.... as i see it, after you click start and end points , the next point sould continue the dim automatically. why its not like that? Well, I'm using AutoCAD 2016... so it might be a version issue here. This is what I see after I've completed the first dimension http://imgur.com/mOkEkdy Quote Link to comment Share on other sites More sharing options...
samifox Posted February 23, 2016 Author Share Posted February 23, 2016 its defently version issue, im using acad 2010, LISP is the only why for me? Quote Link to comment Share on other sites More sharing options...
msirois Posted February 23, 2016 Share Posted February 23, 2016 its defently version issue, im using acad 2010, LISP is the only why for me? Perhaps... but you could try the following command: "DIMCONTINUE" and see if that works in 2010. If it does, you could write a LISP that runs the DIM command and the DIMCONTINUE command together or you could create a shortcut key to run the DIMCONTINUE command I.e. set this to a shortcut ^C^C_Dimlinear;\\\_dimcontinue; Quote Link to comment Share on other sites More sharing options...
samifox Posted February 24, 2016 Author Share Posted February 24, 2016 I'm not sure if this is what you're looking for, but this is what I use in my office. I usually just draw one overall dimension and then I use this LISP to split the dimension at every point needed. You can also use it to join dimensions if you make a mistake. Command is DIMSPLIT and DIMJOIN. (defun C:DIMSPLIT (/ OBJ_PICK DIM_PICK DIM_ENT DIM_NODE1 DIM_NODE2 DIM_DEF DIM_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)))) ..... i've tried your lisp, its really powerful idea of dimensioning, but why its stops after one point? Quote Link to comment Share on other sites More sharing options...
msirois Posted February 24, 2016 Share Posted February 24, 2016 i've tried your lisp,its really powerful idea of dimensioning, but why its stops after one point? To be fair, this is a LISP I use, not one I wrote. But I believe it stops after one because it creates two new dimension lines and it wouldn't know where to continue. Did you try my previous suggestion of assigning DIMCONTINUE to a shortcut key? Quote Link to comment Share on other sites More sharing options...
samifox Posted February 24, 2016 Author Share Posted February 24, 2016 To be fair, this is a LISP I use, not one I wrote. But I believe it stops after one because it creates two new dimension lines and it wouldn't know where to continue. Did you try my previous suggestion of assigning DIMCONTINUE to a shortcut key? not yet. if you can please add coder credit, and im sure going to try DIMCONTINUE and to adjust the code if im allowed. Quote Link to comment Share on other sites More sharing options...
msirois Posted February 25, 2016 Share Posted February 25, 2016 not yet. if you can please add coder credit, and im sure going to try DIMCONTINUE and to adjust the code if im allowed. This is a code I got from a forum. It's not stolen and was given freely to be used however way you want. So feel free to modify it. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.