明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1007|回复: 7

[提问] 生成边界部分无法选中

[复制链接]
发表于 2023-2-7 14:57:08 | 显示全部楼层 |阅读模式
朋友们,请教一下,我写了如下代码,功能是对填充进行重绘边界后进行选中生成的边界。
但是目前有个问题,就是在特殊情况下,有部分边界无法选中,请高手帮忙看一下,是问题出在哪里,应该如何修改,感谢!

(setq ess (ssadd))
(setq ss (ssget '((0 . "HATCH")(97 . 0))))
(setq n (sslength ss))
(while (setq s (ssname ss (setq n (1- n))))
        (command-s "hatchedit" s "b" "p" "y")
        (setq ess (ssadd (entlast) ess))
)
(sssetfirst nil ess)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2023-2-7 15:55:13 | 显示全部楼层
本帖最后由 guosheyang 于 2023-2-7 16:58 编辑

(建议用entlast) 搞个标记  然后选择新产生的线   那两条线确实不能被选中 原因 不清楚
 楼主| 发表于 2023-2-7 16:54:18 | 显示全部楼层
(defun c:tt ()
        (setq lst (list))
        (setq ess (ssadd))
        (setq ss (ssget '((0 . "HATCH")(97 . 0))))
        (setq n (sslength ss))
        (while (setq s (ssname ss (setq n (1- n))))
                (setq lst (append (list s) lst))
        )
        (foreach l lst
                (setq s1 (entlast))
                (command-s "hatchedit" l "b" "p" "y")
                (while (setq s1 (entnext s1))(ssadd s1 ess))
        )
        (command-s "draworder" ess "" "f")
        (sssetfirst nil ess)
)

朋友帮忙搞定了,感谢 !
发出来,分享给大家,希望对大家能有所帮助 。
发表于 2023-2-7 17:09:38 | 显示全部楼层
(defun c:tt()
(setq bj(entlast))
(setq ss (ssget '((0 . "HATCH")(97 . 0))))
(setq n (sslength ss))
(while (setq s (ssname ss (setq n (1- n))))
        (command-s "hatchedit" s "b" "p" "y")
)
(setq ess(ss-entnext bj))
(sssetfirst nil ess)
)
(defun ss-entnext (en / ss)
  (if en
    (progn
      (setq ss (ssadd))
      (while (setq en (entnext en))
        (if (not (member (cdr (assoc 0 (entget en)))
                         '("ATTRIB"
                        "VERTEX"
                        "SEQEND"
                          )
                 )
            )
          (ssadd en ss)
        )
      )
      (if (zerop (sslength ss))
        (setq ss nil)
      )
      ss
    )
    (ssget "_x")
  )
)
发表于 2023-2-7 17:10:44 | 显示全部楼层
这样也可以的
发表于 2023-2-7 17:42:10 | 显示全部楼层
(defun c:tt()
(setq ess (ssadd))
(setq ss (ssget '((0 . "HATCH")(97 . 0))))
(setq n (sslength ss))
(while (setq s (ssname ss (setq n (1- n))))
       (setq s1(entlast))
       (command-s "hatchedit" s "b" "p" "y")
       (while (setq s1 (entnext s1))(ssadd s1 ess))
)
(sssetfirst nil ess) )  
发表于 2023-2-7 17:43:20 | 显示全部楼层
这样好像也可以
发表于 2023-2-8 09:46:10 | 显示全部楼层
感谢大佬的分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-16 08:28 , Processed in 0.163993 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表