判断多段线是否有圆弧
本帖最后由 ScmTools 于 2013-5-10 22:42 编辑判断多段线是否有圆弧(凸度=0)
**** Hidden Message ***** 支持一下,回复,学习 学习学习! Lisp 版(defun chkplarc (el)
(not
(zerop
(apply '+
(mapcar 'cdr
(vl-remove-if-not '(lambda (x) (= (car x) 42)) el)
)
)
)
)
) dear sir,
reply 非常多谢了!!!!! 感谢分享学习了! Free-Lancer 发表于 2013-5-9 10:10
Lisp 版(defun chkplarc (el)
(not
(zerop
程序最好把 在哪个顶点开始有圆弧,并且圆弧的信息给得到,最好了。 Lisphk 发表于 2013-5-26 12:31
程序最好把 在哪个顶点开始有圆弧,并且圆弧的信息给得到,最好了。
(defun plarcinfo (el / i lst bl)
(setq i -1)
(if (setq
lst (vl-remove
nil
(mapcar
(function
(lambda (y)
(setq i (1+ i))
(if (zerop y)
nil
i
)
)
)
(setq bl
(mapcar
'cdr
(vl-remove-if-not '(lambda (x) (= (car x) 42)) el)
)
)
)
)
)
(mapcar 'cons
lst
(mapcar '(lambda (x y)
(setq e (cdr (assoc -1 el)))
(list (vlax-curve-getpointatparam e x)
y
(vlax-curve-getpointatparam e (1+ x))
)
)
lst
(vl-remove 0. bl)
)
)
)
) 判断多段线是否有圆弧,并且得到多段线的圆弧相关信息 还不能看哦,关注! q3_2006 发表于 2013-6-16 13:14
还不能看哦,关注!
在论坛多发帖,很快你就可以看到代码了 XDRX_API提供了一个函数xdrx_polyline_HasBulges 加深下印象
(defun hasbugle (el)
(vl-some '(lambda (x) (not (zerop x)))
(mapcar 'cdr
(vl-remove-if-not el '(lambda (x) (= (car x) 42)))
)
)
)
(defun hasbugle (el)
(vl-every 'zerop
(mapcar 'cdr
(vl-remove-if-not el '(lambda (x) (= (car x) 42)))
)
)
)
Free-Lancer 发表于 2013-5-9 10:10
Lisp 版(defun chkplarc (el)
(not
(zerop
这好象不对吧,凸度应该有正负的
应该直接用 and
页:
[1]
2