Ahankhah 发表于 2022-7-6 08:54:04

如何区分Ell

嗨,球童们,
 
如何识别椭圆对象是闭合的(即全椭圆)还是开放的(即椭圆弧)?
 
感谢您的回复。

pBe 发表于 2022-7-6 09:02:29


(if
(= StartAngle 0)
(Closed/FullEllipse)
(Open/EllipseArc)
)

 

Tharwat 发表于 2022-7-6 09:08:04

我的方法。。。
 

(vlax-curve-IsClosed (car (entsel "\n Select Ellipse :")))

 
如果是T。否则为零

pBe 发表于 2022-7-6 09:15:03

很好tharwat
我不知道那个

Tharwat 发表于 2022-7-6 09:20:19

 
谢谢pBe,
 
我知道这些函数是从vlax曲线开始的-***,当时我正在与多段线斗争,想知道如何处理它们。
 
所以再也没有机会忘记他们了。
 
干杯

Ahankhah 发表于 2022-7-6 09:21:26

pBe和Tharwat,
非常感谢你的帮助。
同时,我研究了内部椭圆和椭圆弧列表。我在里面发现了一个dxf代码,它显示椭圆是否闭合。
 
以下代码的优点是自动或动态(在选择对象时)过滤它们。
 

(setq ellipses
(ssget "X"
   (list
   (cons -4 "<AND")
       (cons 0 "ELLIPSE")
       (cons 41 0)
   (cons -4 "AND>")
   )
)
)

(setq ellipsearcs
(ssget "X"
   (list
   (cons -4 "<AND")
       (cons 0 "ELLIPSE")
       (cons -4 "<NOT")
         (cons 41 0)
       (cons -4 "NOT>")
   (cons -4 "AND>")
   )
)
)

pBe 发表于 2022-7-6 09:29:51

但这是正确的
 
(ssget "X" '((0 . "ELLIPSE") (41 . 0)))对于过滤器列表就足够了
 
我太专注于vlaobjects了,以至于想不出vanilla的简单语法
 
好东西啊哈哈

Ahankhah 发表于 2022-7-6 09:37:39

pBe,
谢谢。
你解释的一切都很清楚,除非你说出pBe的名字

Lee Mac 发表于 2022-7-6 09:37:44

 
不完全是这样。
 
考虑:
 
(entmakex
   (list
       (cons 0 "ELLIPSE")
       (cons 100 "AcDbEntity")
       (cons 100 "AcDbEllipse")
       (list 10 0.0 0.0 0.0)
       (list 11 1.0 0.0 0.0)
       (cons 40 0.5)
       (cons 41 0.0)
       (cons 42 pi)
   )
)
 
 
这不适用于上述反例,请考虑以下内容:
 
(defun c:ellipses nil
   (sssetfirst nil
       (ssget "_X"
         (list
               (cons 0 "ELLIPSE")
               (cons 41 0.0)
               (cons 42 (* 2 pi))
         )
       )
   )
)

(defun c:ellipsearcs nil
   (sssetfirst nil
       (ssget "_X"
         (list
               (cons 0 "ELLIPSE")
               (cons -4 "<OR")
                   (cons -4 "<>")
                   (cons 41 0.0)
                   (cons -4 "<>")
                   (cons 42 (* 2 pi))
               (cons -4 "OR>")
         )
       )
   )
)

pBe 发表于 2022-7-6 09:44:21

 
我一发布就意识到了这一点。
 
 
真正地我想我没有做一个彻底的测试
 
谢谢你提供的信息。
页: [1] 2
查看完整版本: 如何区分Ell