- (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函数返回交点坐标的精度
|