nest1291 Posted August 14, 2018 Share Posted August 14, 2018 (edited) I have a LISP "QuickDimension", I'd like to approve this LISP,Would you see this lisp I want to fix two position. (defun c:qd(/ os dis hva a tem pt1 pt2 pt3 p1 p2 p3 dx dy ag en ed ed1 db10) ;->*error* start (defun *error* (msg)(princ "error: ")(princ msg) (setvar "osmode" os)(setvar "clayer" cl) (princ)) ;-<*error* end (setq os (getvar "osmode") cl (getvar "clayer")) (setq dis (* (getvar "dimscale") (getvar "dimdli"))) (if (= dwqd nil)(setq dwqd dis)(setq dis dwqd)) (prompt "\nCurrently dimension line spacing : ")(princ (rtos dwqd 2 0)) [color="red"];;; I need this value times 4 of current value.[/color] (prompt " 레이어:")(princ cl) (initget "Lin Ali Opt") (setq hva (getkword "\n[Liner(L)/Align(A)/Spacing,Layer(O)]<Liner>:")) (while (= hva "Opt") (setq a (strcat "\nDimension line spacing<" (rtos dwqd 2 0) ">: ")) [color="red"];;; I need this value times 4 of current value.[/color] (setq tem (getdist a)) (if (= tem nil) (setq dis dwqd)(setq dis tem)) (setq dwqd dis) (setq ss1(entsel "\nSelect Layer->")) (if (= ss1 nil) (setq la cl) (progn (setq la (cdr (assoc 8 (entget (car ss1))))) (setvar "clayer" la)) ) (prompt "\nCurrently dimension line spacing :")(princ (rtos dwqd 2 0)) [color="red"];;; I need this value times 4 of current value.[/color] (prompt " Layer:")(princ la) (initget "Lin Ali Opt") (setq hva (getkword "\n[Liner(L)/Align(A)/Spacing,Layer(O)]<Liner>:")) ) (setvar "osmode" 9);end,node (while (setq pt1 (getpoint "\nFirst extension line point->")) (setvar "osmode" 128);per (setq pt2 (getpoint pt1 "\nSecond extension line point->")) (if pt2 (progn (setq pt3 (getpoint pt2 "\nDimension line position->")) (setq p1 pt1 p2 pt2 p3 pt3) (setq dx (abs (- (car pt1) (car pt2))) dy (abs (- (cadr pt1) (cadr pt2))) ) (if (/= hva "Ali") (if (> (- dx dy) 0) (progn (setq hva "Hor" p1 pt1) (setq p2 (list (car pt2) (cadr pt1))) ) (progn (setq hva "Ver" p1 pt1) (setq p2 (list (car pt1) (cadr pt2))) ) ) ) (setvar "osmode" 0) (command "dim" hva p1 p2 p3 "" "e") (if (= hva "Ali")(setvar "osmode" 128)(setvar "osmode" 9)) (setq pt2 (getpoint p2 "\nSecond extension line point->")) (while pt2 (cond ( (= hva "Hor") (setq p1 p2 p2 (list (car pt2) (cadr pt1))) ) ( (= hva "Ver") (setq p1 p2 p2 (list (car pt1) (cadr pt2))) ) ( (= hva "Ali") (setq p1 p2 p2 pt2) ) ) (setvar "osmode" 0) (command "dim" hva p1 p2 p3 "" "e") (if (= hva "Ali")(setvar "osmode" 128)(setvar "osmode" 9)) (setq pt2 (getpoint p2 "\nSecond extension line point->")) ) (initget "Yes No") (setq tem (getkword "\nDouble LINE dimension [Yes/No]<N>:")) [color="red"];;; currently this is "No", but I basically need to work "Yes"[/color] (if (= tem "Yes")(progn (setq en (entlast)) (setq ed (entget en)) (setq db10 (cdr (assoc 10 ed))) (setq ag (angle p2 db10)) (setq p3 (polar db10 ag dis)) (setvar "osmode" 0) (command "dim" hva pt1 p2 p3 "" "e") )) (setvar "osmode" 9);end,node ));if end );while end (setvar "osmode" os)(setvar "clayer" cl) (prin1)) I'm waiting your response~ thank you~ Edited August 14, 2018 by nest1291 Quote Link to comment Share on other sites More sharing options...
BIGAL Posted August 14, 2018 Share Posted August 14, 2018 (edited) Not sure about question (rtos dwqd 2 0)) ;;; I need this value times 4 of current value. (rtos (* 4 dwqd) 2 0)) ;;; I need this value times 4 of current value. Edited August 15, 2018 by BIGAL can not spell or type Quote Link to comment Share on other sites More sharing options...
Stefan BMR Posted August 14, 2018 Share Posted August 14, 2018 (setq dis (* 4.0 (getvar "dimscale") (getvar "dimdli"))) (setq tem (cond ((getkword "\nDouble LINE dimension [Yes/No] <Yes>:")) ("Yes"))) Quote Link to comment Share on other sites More sharing options...
nest1291 Posted August 16, 2018 Author Share Posted August 16, 2018 Not sure about question (rtos dwqd 2 0)) ;;; I need this value times 4 of current value. (rtos (* 4 dwqd) 2 0)) ;;; I need this value times 4 of current value. Thank you for your response. ~!!!!!!!! Quote Link to comment Share on other sites More sharing options...
nest1291 Posted August 16, 2018 Author Share Posted August 16, 2018 (edited) (setq dis (* 4.0 (getvar "dimscale") (getvar "dimdli"))) (setq tem (cond ((getkword "\nDouble LINE dimension [Yes/No] <Yes>:")) ("Yes"))) Thank you for your response ~!!! . currently It works very well. (setq dis (* 4 (getvar "dimscale") (getvar "dimdli"))) I use this code. It works in autocad2019, but can't work in autocad2012. thank you for your response , Thank you ~!! Edited August 16, 2018 by nest1291 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.