如何在原线条上居中生成可以输入任意长度的线条?
如图,其中10可以自定义输入(defun c:tt ()
(setq en(car (entsel "\n选择line: "))
ll(getreal "\n输入线长: ")
ent (entget en)
pt1 (cdr (assoc 10 ent))
pt2 (cdr (assoc 11 ent))
rad (angle pt1 pt2)
p0(mapcar '(lambda (x y) (* (+ x y) 0.5)) pt1 pt2)
p1(polar p0 rad (* ll -0.5))
p2(polar p0 rad (* ll 0.5))
)
(command "line" "non" p1 "non" p2 "")
(princ)
) 多抄别人的代码就会了
(defun c:tt(\ dis en ent l pt1 pt2)
(setq en (car (entsel "\n选择line:"))
l(getreal"\n输入线长:")
ent(entget en)
pt1(cdr(assoc 10 ent))
pt2(cdr(assoc 11 ent))
dis(distance pt1 pt2)
l(* 0.5(- l dis))
en (entmakex ent))
(command "lengthen" "de" l (list en pt1) (list en pt2) "")) 本帖最后由 x_s_s_1 于 2024-2-23 23:00 编辑
277283904 发表于 2024-2-23 21:31
测试过,不起作用,没反应的呢(\ dis en ent l pt1 pt2)改成(/ dis en ent l pt1 pt2)
(defun c:tt(/ dis en ent l pt1 pt2)
(setqen(car (entsel "\n选择line:"))
l (getreal "\n输入线长:")
ent (entget en)
pt1 (cdr (assoc 10 ent))
pt2 (cdr (assoc 11 ent))
dis (distance pt1 pt2)
l (* 0.5 (- l dis))
en(entmakex ent))
(command "lengthen" "de" l (list en pt1) (list en pt2) ""))
获取原线条的起点和端点 算出中点和角度 用 polar 计算得到任意长度的两点 飞雪神光 发表于 2024-2-23 14:46
获取原线条的起点和端点 算出中点和角度 用 polar 计算得到任意长度的两点
不会写啊大佬;P 感谢高手代码 夏生生 发表于 2024-2-23 16:11
多抄别人的代码就会了
测试过,不起作用,没反应的呢;P xyp1964 发表于 2024-2-23 22:35
(defun c:tt ()
(setq en(car (entsel "\n选择line: "))
ll(getreal "\n输入线长: ")
不好意思!可以在原线里生成吗,直接替换掉;P x_s_s_1 发表于 2024-2-23 22:49
(\ dis en ent l pt1 pt2)改成(/ dis en ent l pt1 pt2)
不好意思!可以在原线里生成吗,直接替换掉;P
页:
[1]
2