mokson 发表于 2020-7-17 15:39:54

如何得到这个选择集?

图框内有线性标注、对齐标注、半径标注、直径标注,
我想定义一个只有半径和直径标注的选择集。
无奈自己才疏学浅,无从下手。


(setq ss (ssget '((100 . "AcDbRadialDimension,AcDbDiametricDimension"))));以失败告终


我知道哪里出错了,但却又不知道。
学艺不深,难搞了。

maiko 发表于 2020-8-2 17:11:51

楼主可以用选择易属性过滤,提示行有代码提示

gaics 发表于 2020-7-17 16:07:40

本帖最后由 gaics 于 2020-7-17 16:16 编辑

(setq ss (ssget'((0 . "Dimension")(-4 ."<or")(70 . 35)(70 . 36)(-4 ."or>")))
35直径,36半径

mokson 发表于 2020-7-17 15:45:52

本帖最后由 mokson 于 2020-7-17 15:47 编辑

(setq ss (ssget '((100 . "AcDbRadialDimension")(100 . "AcDbDiametricDimension")))) ;这个也不行。
(setq ss (ssget '((0 . "Dimension"))));会全部标注都包含了,不是我想要的,我只想只包含半径和直径的标注。

gaics 发表于 2020-7-17 16:59:04

gaics 发表于 2020-7-17 16:07
(setq ss (ssget'((0 . "Dimension")(-4 ."")))
35直径,36半径

70组码竟然是变值,谨慎使用。
参考以下帖子:
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=169729&highlight=%B1%EA%D7%A2%D7%E9%C2%EB

mokson 发表于 2020-7-17 17:09:29

对呀,我正想向你说明这个情况,35和36不是唯一的判断组码。
它有可能是163和164,当半径/走私标注在外面进行ISO折弯时,或标注在圆内时,
就可能变成163(直径)和164(半径)




gaics 发表于 2020-7-17 17:32:22

帖子里已经告诉你方法了
(ssget '((0 . "dimension")(-4 . "&=") (70 . 4)))
或者用笨办法全部可能的值都列出来

1291500406 发表于 2020-7-17 19:31:02

本帖最后由 1291500406 于 2020-7-17 22:34 编辑

(setq ss (ssget'((0 . "Dimension")(-4 ."<or")(70 . 163)(70 . 164)(-4 ."or>"))))

mokson 发表于 2020-7-17 19:54:14

能跳过使用这个繁琐的方法吗,能用 (100 . "AcDbRadialDimension") 或者 (100 . "AcDbDiametricDimension") 这个唯一的属性去判断吗?这又如何写?

1291500406 发表于 2020-7-17 19:55:25

本帖最后由 1291500406 于 2020-7-17 20:08 编辑

mokson 发表于 2020-7-17 19:54
能跳过使用这个繁琐的方法吗,能用 (100 . "AcDbRadialDimension") 或者 (100 . "AcDbDiametricDimension") ...
写了,你学学写法把,你加油

1291500406 发表于 2020-7-17 20:06:40

本帖最后由 1291500406 于 2020-7-17 20:26 编辑

mokson 发表于 2020-7-17 19:54
能跳过使用这个繁琐的方法吗,能用 (100 . "AcDbRadialDimension") 或者 (100 . "AcDbDiametricDimension") ...
你加油,,,
页: [1] 2
查看完整版本: 如何得到这个选择集?