请教!指定点与上下左右四个方向上最近图元的交点坐标
请教各位大神!
除了用(ssget "f" (list p1 p2)) 配合ssnamex函数、
获取指定点与上下左右四个方向上最近图元的交点外,
还有没有其他方法可以获取到这四个交点的坐标?
明经上好像有代码啊 向四个方向上画线然后求交点 优点是没有误差 缺点是高版本CAD卡顿 飞雪神光 发表于 2024-9-15 07:19
明经上好像有代码啊 向四个方向上画线然后求交点 优点是没有误差 缺点是高版本CAD卡顿
谢谢、我在搜一下看看吧、之前搜没有找到、画线求交点怎么应该比直接BO流畅吧 飞雪神光 发表于 2024-9-15 07:19
明经上好像有代码啊 向四个方向上画线然后求交点 优点是没有误差 缺点是高版本CAD卡顿
(defun c:tt ()
(defun line (pt1 pt2)
(entmakex
(vl-list*
'(0 . "LINE")
'(100 . "AcDbEntity")
'(100 . "AcDbLine")
(list (cons 10 pt1) (cons 11 pt2))
)
)
)
(setq pt (getpoint"\n指定内部点"))
(setq pt1 (polar pt 0 0.5))
(setq pt2 (polar pt pi 0.5))
(setq pt3 (polar pt (* 0.5 pi) 0.5))
(setq pt4 (polar pt (* 1.5 pi) 0.5))
(setq cp1 (polar pt (* 0.25 pi) 1))
(setq cp2 (polar pt (* 1.25 pi) 1))
(line pt1 pt2)
(line pt3 pt4)
(setq ss (ssget "c" cp1 cp2))
(setvar "OSMODE" 0)
(command-s "EXTEND" "" "C" ss "")
)
我想到一种方法、就是画水平和垂直的两条线、然后用EX命令去延伸、延伸后的端点坐标就是交点、
不过现在延伸直线出问题了、我直接在CAD中输入EX命令去延伸,可以同时延伸四个端点、
但是用Lisp就只能延伸两个端点、不知道是什么问题 xiaocainiao 发表于 2024-9-15 15:01
(defun c:tt ()
(defun line (pt1 pt2)
(entmakex
(command "_extend" "" (list ty pt)"") 飞雪神光 发表于 2024-9-15 18:06
谢谢、我发现用延伸这种方法应该也是可以的、目前发现的问题、就是延伸不会过滤填充、就是说会把填充做为延伸边、搜了帮助好像没有变量能控制过滤填充 个人觉得提问时需附上具代表性的样例
要不然回应者给出的可能只是子集
满足不了衍生的状况
Andyhon 发表于 2024-9-15 20:30
个人觉得提问时需附上具代表性的样例
要不然回应者给出的可能只是子集
满足不了衍生的状况
谢谢建议、以后注意
页:
[1]