oysheji 发表于 2025-1-15 15:36:03

xyp1964 发表于 2025-1-15 14:34
(defun c:aa()(setvar"osmode"39)(command"_line""m2p" pause pause )(princ))

找不到画中线与另外一根线的垂足,麻烦老师看看能不能再完善一下,图片在上面回复里

xyp1964 发表于 2025-1-15 20:38:15

(defun c:aa ()
(setvar "osmode" 167)
(while (and (setq p0 (getpoint "\n基点<退出>: "))
            (setq p1 (getpoint p0 "\n基点<退出>: "))
            (setq p2 (mapcar '(lambda (x y) (* (+ x y) 0.5)) p0 p1))
            (setq p3 (getpoint p2 "\n垂点<退出>: "))
         )
    (command "line" p2 p3 "")
)
(princ)
)

oysheji 发表于 2025-1-15 23:05:59

xyp1964 发表于 2025-1-15 20:38


老师辛苦了,这么晚了还在帮忙修改代码,感觉你的用心付出,现在能够捕捉到垂足了,但是生成的线不在画的位置,自动生成到那根线的中点上了

oysheji 发表于 2025-1-15 23:08:43

看下图片,现在画的线到黄线中点位置了

jackie31986 发表于 2025-1-16 14:50:53

建议垂点用P3的X,P2的Y组合。

oysheji 发表于 2025-1-18 19:53:29

jackie31986 发表于 2025-1-16 14:50
建议垂点用P3的X,P2的Y组合。

不会弄,要怎么改呢

xyp1964 发表于 2025-1-19 11:33:41

oysheji 发表于 2025-1-15 23:05
老师辛苦了,这么晚了还在帮忙修改代码,感觉你的用心付出,现在能够捕捉到垂足了,但是生成的线不在画的 ...(defun c:aa ()
(setvar "osmode" 167)
(while (and (setq p0 (getpoint "\n基点<退出>: "))
            (setq p1 (getpoint p0 "\n基点<退出>: "))
            (setq p2 (mapcar '(lambda (x y) (* (+ x y) 0.5)) p0 p1))
            (setq p3 (getpoint p2 "\n垂点<退出>: "))
         )
    (command "line" p2 "per" p3 "")
)
(princ)
)


oysheji 发表于 2025-1-21 17:17:02

xyp1964 发表于 2025-1-19 11:33


老师这个比较好,欧了,完美解决,谢谢
页: 1 [2]
查看完整版本: 各位老师好,选两点画中线,但是选第一点就没有捕捉,麻烦帮忙改下谢谢