Jump to content

I have a LISP "QuickDimension", I'd like to approve this LISP,Would you see this lisp


nest1291

Recommended Posts

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 by nest1291
Link to comment
Share on other sites

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 by BIGAL
can not spell or type
Link to comment
Share on other sites

(setq dis (* 4.0 (getvar "dimscale") (getvar "dimdli")))

 

 

(setq tem (cond ((getkword "\nDouble LINE dimension [Yes/No] <Yes>:")) ("Yes")))

Link to comment
Share on other sites

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. ~!!!!!!!!

Link to comment
Share on other sites

(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 by nest1291
Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...