平分线并绘制垂线
正在寻找快速修复方法。我需要平分一条线,从测量线的中点画一条垂直线。如果可以动态完成这项工作,即可以在直线的任一侧绘制垂直线,并且可以绘制到任意长度,那将是非常棒的。任何协助都将不胜感激。 在OSNAP中设置中点和垂直。打开动态输入。按F11切换“object snap trace”(对象捕捉跟踪)(我认为这在英文版本中就是它的名称,如果不查看屏幕左侧的底部项目并观察,你会看到一个图标打开和关闭,请确保它处于打开状态)。启动line命令并捕捉到线的中点,当您将光标移开时,您将得到一条虚线,您只需输入线的长度,就可以得到您想要的。 只要遵循泰克的指示,你就会成为一个非常快乐的露营者。
图中圈出的3个图标是Tyke所指的图标
它们是对象捕捉、对象捕捉跟踪和从左到右的动态输入。
可以单击鼠标左键打开或关闭它们,
也可以分别用F3、F11和F12来打开和关闭它们。
谢谢Tyke,它工作得很好,但我正在寻找一个lisp例程,因为我有大量的线来绘制垂直线。 使用此旧程序并单击中点:
(defun c:per ( / *error* e o p )
(defun *error* ( m )
(if o (progn (setvar 'orthomode o) (command "_.ucs" "_p")))
(princ)
)
(if (and
(setq p (getpoint "\nSpecify first point: "))
(setq e (car (nentselp p)))
)
(progn
(setq p (trans p 1 0))
(command "_.ucs" "_ob" e)
(setq o (getvar 'orthomode))
(setvar 'orthomode 1)
(command "_.line" "_non" (trans p 0 1))
(while (< 0 (getvar 'cmdactive)) (command "\\"))
(setvar 'orthomode o)
(command "_.ucs" "_p")
)
)
(princ)
)
这就是李。打开动态输入后,你能输入行长吗? 或者,
(defun c:per ( / e p q )
(if (setq e (ssget "_+.:E:S" '((0 . "LINE"))))
(progn
(setq e (entget (ssname e 0))
p (trans (cdr (assoc 10 e)) 0 1)
q (trans (cdr (assoc 11 e)) 0 1)
)
(vl-cmdf "_.line" "_non"
(mapcar '(lambda ( a b ) (/ (+ a b) 2.0)) p q)
(strcat "<" (angtos (+ (angle p q) (/ pi 2.0))))
"\\" ""
)
)
)
(princ)
)
Tharwat尝试得很好,但不完全是:
请考虑以下情况:
(defunc:test(/a b d e g m p q)(if(setqe(ssget'((0.“LINE”))(setqe(entget)(ssr]名称e 0)p(trans(cdr(assoc10 e))0 1)q(trans(cdr(assoc11 e))0 1)m('((a b)(+a b)2.0))p q)a(LAMBER](+a(/pi2.0))(而[=5(car(setqg(grreadt13.0))(redraw)(setq(distance[m g)q(polar[m b(if[( 谢谢李的更正,它非常准确。 很好,谢谢。
页:
[1]
2