绘制距离(夸张比例)
我画了一些垂直放大2倍的横截面。有人知道这样一个计算图形上两点之间斜率距离的好方法吗: "))(setq str1 "Yes")
)
(if (= str1 "Yes")
(setq up-dn (/ pi 2))
(setq up-dn (-(/ pi 2)))
)
(setvar "CMDECHO" 0)
(if (= slphgt nil)(if (= (getvar "CVPORT") 1)(setq slphgt 0.1)(setq slphgt (/ 0.1 (getvar "CANNOSCALEVALUE")))))
(setq tom (getreal (strcat " Text Size:: ")))
(if tom (setq slphgt tom))
(if (= hscal nil)(setq hscal 20.0))
(setq tom (getreal (strcat " Horizontal Scale:: ")))
(if tom (setq hscal tom))
(if (= vscal nil)(setq vscal 5.0))
(setq tom (getreal (strcat " Vertical Scale:: ")))
(if tom (setq vscal tom))
(setq sfactor (/ hscal vscal 100)
rem1 (getvar "luprec")
)
(if (= sl-prec nil)(setq sl-prec 2))
(setq tom (getreal (strcat " Precision:: ")))
(if tom (setq sl-prec tom))
(princ "\nsl-prec = ")
(princ sl-prec)
(setvar "luprec" sl-prec)
(setvar "osmode" 1)
(setq
pt1 (getpoint "From: ")
pt2 (getpoint pt1 "To: "))
(princ "\n")
(while pt2
(if pt3(princ " "))
(setq
stylet (getvar "textstyle")
entlay (getvar "clayer")
azrad (angle pt1 pt2))
(setq
azr2 (- azrad up-dn)
pt3 (list(/(+(car pt2)(car pt1))2)(/(+(cadr pt2)(cadr pt1))2))
txt (strcat "Slope=" (rtos(/ (-(cadr pt2)(cadr pt1)) sfactor
; txt (strcat(rtos(/ (-(cadr pt2)(cadr pt1)) sfactor
(-(car pt2)(car pt1))))"%")
txt_pt (polar pt3 azr2 slphgt)
)
(princ "Slope=")
(princ txt)
(setq elist (list '(0 . "TEXT") (cons 1 txt) (cons 7 stylet)
(cons 8 entlay) (cons 10 txt_pt) (cons 11 txt_pt) (cons 40 slphgt)
(cons 50 azrad) '(71 . 0) '(72 . 1) '(73 . 2)))
(entmake elist)
(entmod elist)
(setq
pt1 pt2
pt2 nil
pt2 (getpoint pt1))
(princ)
)
(setvar "osmode" rem)
(setvar "luprec" rem1)
(princ)
)
代码的荣誉属于Tom Beauford
http://forums . augi . com/show thread . PHP?t=107096 我最终为此制作了自己的简单LSP:
(defun C:sloped ()
(setq exg (getint "\nVertical Exaggeration : "))
(setq P1 (getpoint "\nPick first point: "))
(setq P2 (getpoint "\nPick second point: "))
(setq P1x (car P1))
(setq P1y (cadr P1))
(setq P2x (car P2))
(setq P2y (cadr P2))
(setq slopedistance (sqrt(+ (expt (- P1x P2x) 2) (expt (* exg (- P1y P2y)) 2))))
(prin1 slopedistance)
)
我试图让它在距离上方画一条线(像一个维度),但我很难做到。 blahdc,
我有一个用于斜坡的lisp。看看这个修改,看看它是否接近您需要的。(原始代码可能来自The Swamp的某人,只是不记得了,所以如果是这样,请考虑一下。)
拜伦
页:
[1]