hw8810 发表于 2024-11-14 16:19:37

请问如何判断样条曲线闭合?

按道理看70组码=1就是闭合。查看了两条样条曲线的组码,怎么跟说明的对不上?各位大神有知道的吗?

llsheng_73 发表于 2024-11-15 13:08:02

本帖最后由 llsheng_73 于 2024-11-15 13:12 编辑

kozmosovia 发表于 2024-11-14 18:40
要把所有1的位码都加进去:
1+2
1+4
选择过滤'((-4 . "&")(70 . 1))
判断70组(=(logand(cdr(assoc 70 entdata))1)1)

xyp1964 发表于 2024-11-16 17:23:34

(=(rem(cdr(assoc 70(entget e)))2)1)

kozmosovia 发表于 2024-11-15 12:57:11

VBALISPER 发表于 2024-11-15 10:20
直接判断是奇数可以吗?

应该可以的。

kozmosovia 发表于 2024-11-14 16:25:30

70是位码,12=4+8
要判断是否闭合,需要判断(logand DXF70 1)是否为1,或者直接vlax-curve函数判断https://help.autodesk.com/view/OARX/2021/ENU/?guid=GUID-DC3C19D3-D0EA-4638-B8AB-E3A057B66D1F

hw8810 发表于 2024-11-14 16:30:51

kozmosovia 发表于 2024-11-14 16:25
70是位码,12=4+8
要判断是否闭合,需要判断(logand DXF70 1)是否为1,或者直接vlax-curve函数判断https:/ ...

那想选择闭合的样条曲线要怎么写呢?这样写应该不行了
(-4 . "<AND") (0 . "SPLINE") (70 . 1) (-4 . "AND>")

xyp1964 发表于 2024-11-14 18:36:19

kozmosovia 发表于 2024-11-14 16:25
70是位码,12=4+8
要判断是否闭合,需要判断(logand DXF70 1)是否为1,或者直接vlax-curve函数判断https:/ ...

有时 vlax-curve-isClosed 也不可靠

kozmosovia 发表于 2024-11-14 18:40:03

hw8810 发表于 2024-11-14 16:30
那想选择闭合的样条曲线要怎么写呢?这样写应该不行了
(-4 . "")

要把所有1的位码都加进去:
1+2
1+4
1+8
1+16
1+2+4
1+2+8
1+2+16
。。。。
(-4 . "<AND") (0 . "SPLINE")(-4 . "<OR")(70 . 1)(70 . 3) (70 . 5)(70 . 9)(70 . 17)...(-4 . "OR>")(-4 . "AND>")

xyp1964 发表于 2024-11-14 18:44:32

(defun isClosed (e)(equal (vlax-curve-getStartPoint e)(vlax-curve-getEndPoint e)1e-8))

kozmosovia 发表于 2024-11-14 18:58:38

xyp1964 发表于 2024-11-14 18:44

这种只能判定假闭合,看起来是闭合曲线,但是线可以首末点一样但属性不闭合。要确定的判断真假,还得vlax-curve-isClosed,比判断点还省事。

尘缘一生 发表于 2024-11-15 06:35:17

;;是否是曲线---(一级)---
(defun sl-iscur (e)
        (not (vl-catch-all-error-p (vl-catch-all-apply 'vlax-curve-getstartparam (list e))))
)
;;曲线是否封闭--(一级)----
;;(sl:isClosed (car (entsel)))
(defun sl:isClosed (e)
        (if (sl-iscur e)
                (or (vlax-curve-isclosed e) (equal (vlax-curve-getstartpoint e) (vlax-curve-getendpoint e) 1e-5))
                nil
        )
)

hw8810 发表于 2024-11-15 09:21:26

kozmosovia 发表于 2024-11-14 18:40
要把所有1的位码都加进去:
1+2
1+4


好,感谢大佬

VBALISPER 发表于 2024-11-15 10:20:50

kozmosovia 发表于 2024-11-14 18:40
要把所有1的位码都加进去:
1+2
1+4


直接判断是奇数可以吗?
页: [1] 2
查看完整版本: 请问如何判断样条曲线闭合?