xiaocainiao 发表于 2024-4-11 08:52:19

求教!如何提升用ssnamex函数获取交点坐标的精度

(defun c:tt (/ int_list p1 p2 pt1 pt2 ss ssdata)
(setq pt1 (getpoint))
(setq pt2 (getpoint pt1))
(setq ss (ssget "f" (list pt1 pt2)))
(setq int_list ())
(setq ssdata (ssnamex ss))
(foreach x ssdata
    (foreach y
      (cdddr x)
      (setq int_list (cons (trans (cadr y) 0 1) int_list))
    )
)
(setq p1 (polar (car int_list) (* 1.5 pi) 100))
(setq p2 (polar p1 0 100))
(entmake (list '(0 . "LINE")'(100 . "AcDbEntity") '(100 . "AcDbLine") (cons 10 p1) (cons 11 p2)))
)近期遇到一个头疼问题、就是用(setq ss (ssget "f" (list pt1 pt2)))配合ssnamex函数获取交点后、
再利用这个交点坐标偏移生成直线、最后用di去测量、会发现测量距离与偏移距离之间存在误差、
以上是程序代码、下方是操作演示:

这个误差范围很小、但是强迫症有点难受、
所以想请教下论坛的各位大神!
有没有办法提升ssnamex函数返回交点坐标的精度

xiaocainiao 发表于 2024-4-11 10:48:46

gzcsun 发表于 2024-4-11 10:30
是要用vlax-curve-getClosestPointTo再处理。
别的直接用vla-intersectwith也没有误差。
好像是有人说ssn ...

主要是和块的交点难搞、用ssnamex不用管是不是块、可以直接搞出所有交点、然后排个序就行了、操作上简单很多、就是精度这块有点难受

xiaocainiao 发表于 2024-4-11 16:59:43

kucha007 发表于 2024-4-11 13:13
看看这个:
【K:GetEntInters】计算直线和实体的交点
http://bbs.mjtd.com/forum.php?mod=viewthread&tid ...

我试了一下这个函数、貌似和图块相交还是有些问题、结果不准确、普通图元问题不大、也可能是我操作有问题

xiaocainiao 发表于 2024-4-11 10:13:04

ssyfeng 发表于 2024-4-11 10:00
再用vlax-curve-getClosestPointTo函数求曲线最近点试试

用ssnamex主要是方便点、因为涉及到和块内图元的交点、曲线函数对块内图元不太灵

liuhe 发表于 2024-4-11 09:14:31

画一条直线,再和矩形求交点

飞雪神光 发表于 2024-4-11 09:45:54

ssnamex这个精度就这样 画线吧

ssyfeng 发表于 2024-4-11 10:00:27

再用vlax-curve-getClosestPointTo函数求曲线最近点试试

xiaocainiao 发表于 2024-4-11 10:12:02

liuhe 发表于 2024-4-11 09:14
画一条直线,再和矩形求交点

我这个其实只是拿矩形讲一下ssnamex的精度问题、实际应用时不一定是矩形、还可能是图块啥的、用ssnamex直接点

xiaocainiao 发表于 2024-4-11 10:14:10

飞雪神光 发表于 2024-4-11 09:45
ssnamex这个精度就这样 画线吧

谢谢!如果搞不了精度问题、那我只能放弃了、画线对于图块啥的不好搞

gzcsun 发表于 2024-4-11 10:30:49

本帖最后由 gzcsun 于 2024-4-11 10:39 编辑

是要用vlax-curve-getClosestPointTo再处理。
别的直接用vla-intersectwith也没有误差。
好像是有人说ssnamexe慢的

kucha007 发表于 2024-4-11 13:13:11

看看这个:
【K:GetEntInters】计算直线和实体的交点
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=187621&fromuid=7329538
(出处: 明经CAD社区)
页: [1] 2
查看完整版本: 求教!如何提升用ssnamex函数获取交点坐标的精度