d0n Posted June 14, 2011 Share Posted June 14, 2011 Hi there, I was wondering if it is possible to make a lisp to do the following: ddedit a dimension to make it end in either 3", 6" 9" or 0", but always rounding down. So a 10'-10" would be 10'-9" and so on.. Thanks for the help! Quote Link to comment Share on other sites More sharing options...
Tharwat Posted June 14, 2011 Share Posted June 14, 2011 Welcome to the Forum . Check this out .... (defun c:Test (/ Three Six Nine ss sideA sideB dis p pt) ; Tharwat 14. 06. 2011 (setq Three (* 25.4 3.) Six (* 25.4 6.) Nine (* 25.4 9.)) (if (and (setq ss (car (entsel "\n Select a Dimension :"))) (eq (cdr (assoc 0 (setq e (entget ss)))) "DIMENSION") ) (progn (setq sideA (cdr (assoc 13 e))) (setq sideB (cdr (assoc 14 e))) (setq dis (distance sideA sideB)) (if (eq (car sideA) (car sideB) ) (setq p sideB) (setq p sideA) ) (cond ( (and (> dis 0.) (< dis Six)) (setq pt (polar p (angle sideA sideB) Three)) ) ( (and (> dis Six) (< dis Nine)) (setq pt (polar p (angle sideA sideB) Six)) ) ( (> dis Nine) (setq pt (polar p (angle sideA sideB) Nine)) ) ) (entupd (cdr (assoc -1 (entmod (subst (cons 14 pt) (assoc 14 e) e))) ) ) ) (princ) ) (princ) ) Tharwat Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted June 14, 2011 Share Posted June 14, 2011 If I understand your goal correctly, this should work: (defun c:test ( / dm en ft in ) (if (and (setq en (car (entsel "\nSelect Dimension: "))) (eq "DIMENSION" (cdr (assoc 0 (entget en)))) ) (progn (setq en (entget en) dm (cdr (assoc 42 en)) ft (fix (/ dm 12.)) in (rem dm 12.) ) (setq in (cond ( (< in 3) 0) ( (and (<= 3 in) (< in 6)) 3) ( (and (<= 6 in) (< in 9)) 6) ( 9) ) ) (entmod (subst (cons 1 (rtos (+ (* ft 12.) in) (getvar 'DIMLUNIT) (getvar 'DIMDEC))) (assoc 1 en) en ) ) ) ) (princ) ) Although, since the above uses the Dimension Measurement (DXF 42) rather than the Dimension String, it will not take into account Dimension Style Prefixes/Suffixes/Alt Units/Tolerances etc. that are displayed. @Tharwat, From the reference to 'ddedit', I think the OP wants to use the Dimension Override, not alter the position of the Dimension Endpoints. Also, what if the dimension measurement is greater than 1'? Did you try on the OP's example of 10'-10"? Quote Link to comment Share on other sites More sharing options...
Guest kruuger Posted June 14, 2011 Share Posted June 14, 2011 Hi there, I was wondering if it is possible to make a lisp to do the following: ddedit a dimension to make it end in either 3", 6" 9" or 0", but always rounding down. So a 10'-10" would be 10'-9" and so on.. Thanks for the help! if you want to override dimensions just go to your dimstyle and set roundoff to 3. lisp is not necessary. kruuger Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted June 14, 2011 Share Posted June 14, 2011 if you want to override dimensions just go to your dimstyle and set roundoff to 3. lisp is not necessary.kruuger Good call Kruuger - I missed the wood for the trees on this one Quote Link to comment Share on other sites More sharing options...
Tharwat Posted June 14, 2011 Share Posted June 14, 2011 if you want to override dimensions just go to your dimstyle and set roundoff to 3. lisp is not necessary.kruuger Good point kruuger , I also did not get the point of the OP with their little words about the needs from the routine . Thanks. Quote Link to comment Share on other sites More sharing options...
d0n Posted June 14, 2011 Author Share Posted June 14, 2011 haha good call, i thought i tried that and it didn't work, i guess it does now Quote Link to comment Share on other sites More sharing options...
d0n Posted June 15, 2011 Author Share Posted June 15, 2011 hi just remember why the rounding in dimstyle wont work in my case, because it will round UP, where as i only want it to round down. Will try the lisp created by you guys, thanks! 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.