尺寸线lisp!!帮助
我试图完成这个Lisp程序,但我有一个小问题的规模。对于任何小刻度,文本大小都是相同的。我不知道问题出在哪里。有人能帮我吗!这是我的密码
;;------------------------------------ LINEDIM.LSP ----------------------------------;;
(defun C:LINEDIM(/ *error* acsp adoc ang curve deriv en mid mp ppt1 ppt2 prex sset txh txt txt1 txtpt1 scl ht)
(command "layer" "m" "diast" "")
(setq scl(/ (getreal"\n GIVE SCALE (100,200,500,etc) : ") 100))
(setq ht(* 0.175 scl))
(command "style" "diast" "wgsimpl.shx" "" "" "" "" "")
(defun *error* (msg)
(vla-endundomark (vla-get-activedocument
(vlax-get-acad-object))
)
(cond ((or (not msg)
(member msg '("console break" "Function cancelled" "quit / exit abort"))
)
)
((princ (strcat "\nError: " msg)))
)
(princ)
)
(setq adoc (vla-get-activedocument
(vlax-get-acad-object))
acsp (vla-get-block(vla-get-activelayout adoc)))
(vla-startundomark adoc )
(setq txh (getvar "dimtxt")
prex (getvar "dimdec")
)
(while (not sset)
(setq sset (ssget '((0 . "*LINE")))
)
)
(while (setq en (ssname sset 0))
(setq curve (vlax-ename->vla-object en))
(setq txt (if (= (getvar "measurement") 0)
(rtos (vla-get-length curve) 2 2)
(rtos (vla-get-length curve) 2 prex))
)
(setq mid (/ (abs (- (vlax-curve-getendparam curve)
(vlax-curve-getstartparam curve))) 2.)
mp (vlax-curve-getpointatparam curve mid)
deriv(vlax-curve-getfirstderiv
curve
(vlax-curve-getparamatpoint curve mp))
)
(if (zerop (cadr deriv))
(setq ang 0)
(setq ang (- (/ pi 2) (atan (/ (car deriv) (cadr deriv)))))
)
(if (< (/ pi 2) ang (* pi 1.5))
(setq ang (+ pi ang))
)
;;;(setq ppt1 (polar mp (+ ang (/ pi 2)) (* txh 0.5))
;;; )
(setq ppt1 (polar mp (+ ang (/ pi 2)) 0.15)
)
(setq txtpt1(vlax-3d-point (trans ppt1 1 0)))
;;;(setq txt1 (vla-addtext acsp txt txtpt1 txh))
(setq txt1 (vla-addtext acsp (strcat (strcat txt )) txtpt1 txh))
(vla-put-alignment txt1 acalignmentbottomcenter)
(vla-put-textalignmentpoint txt1 txtpt1)
(vla-put-insertionpoint txt1 (vla-get-textalignmentpoint txt1))
(vla-put-rotation txt1 ang)
(ssdel en sset)
)
(*error* nil)
(princ)
)
(princ)
(or (vl-load-com)
(princ))
;;------------------------------------ code end ----------------------------------;;
这不是“你的”代码。通常,包括原始作者和代码来源的位置是合适的。
几周前你不是要求这样的东西吗?如果我没记错的话,答案就在那条线索里。
试着用LISP展示一下你会做什么,我会非常乐意帮你。
它是两个lisp代码的混合。我没有说这是我的密码。我认为fixo或frixo是一个lisp的作者,我不知道另一个。 有什么想法吗?
这句话来自你原来的帖子
. 所以你说这是你的密码。 @OP:清除此行:
(可能您的窗口没有这种字体)并添加以下行:
行下方:
(vla-put-rotation txt1 ang)
ht是文本高度,在代码中:
scl=给定量表(100200500等)/100
ht=0.175 x scl 谢谢你的建议,但我需要这两行代码
我修改了所有代码,然后写了这个
(defun c:linedim(/ scl ht)
(setq scl(/ (getreal"\n GIVE SCALE (100,200,500,etc) : ") 100))
(setq ht(* 0.175 scl))
(command "style" "diast" "wgsimpl.shx" "" "" "" "" "")
(setq point1 '(0,0,0))
(while point1
(setq point1 (getpoint "Pick the first point :"))
(setq point2 (getpoint "Pick the second point :"))
(setq point3 (getpoint "pick the possition of the text :"))
(setq apost (distance point1 point2))
(setq gon (angle point1 point2))
(setq gon2 (atof (angtos gon 2 2)))
(setq apost2 (rtos apost 2 2))
(command "text" point3 ht gon2 apost2)
)
)
但我想改变它。。。。
我需要选一条线,在中心线的下面写下距离 有什么想法吗? 是的,他的话甚至在之前的帖子中被强调,但他仍然否认。但我想我已经向prodromosm指出,他在帖子中不够直率。从他的回答中,我得到的印象是,这对他来说真的意义不大。其他人也指出了类似的违规行为和对他的错误态度,但在这些情况下,他似乎也不太在意。显然,他已经达到了“用户”的定义。
大量
选择哪条线?要在下方居中,您可以尝试使用“顶部居中”对齐。
页:
[1]