明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4611|回复: 10

[提问] 如何批量清除图纸中的线段间隙

[复制链接]
发表于 2014-4-16 10:11 | 显示全部楼层 |阅读模式
本帖最后由 CAD_lso 于 2014-4-16 10:23 编辑

在使用填充(hatch)命令时, 提示边界未封闭, 存在间隙(gaps), 但目测没有间隙, 如何清理掉这些间隙?
尝试了调整误差, 但是效果不理想, 出现很多错误, 有没有能够合并端点的方法?
如下图所示.
谢谢.

本帖子中包含更多资源

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

x
发表于 2014-4-16 19:32 | 显示全部楼层
顶一个,确实很有意思
发表于 2014-4-16 20:13 | 显示全部楼层
命令:PEDIT
参数:C
回车
发表于 2014-4-17 13:04 | 显示全部楼层
本帖最后由 llsheng_73 于 2014-4-17 13:06 编辑

如果边界都是直线和多线段那就比较容易,我以前写过一个只适用于直线和多线段的,还有点小问题
但实际情况通常可能还会有圆、弧、椭圆、样条曲线等,这就比较麻烦,找出这些需要处理的地方并不难,但是如果需要处理圆弧、椭圆弧、样条曲线的起止点的话,我现在水平不够,处理不了(当然,如果 调用延伸命令也能解决)
发表于 2014-5-24 18:24 | 显示全部楼层
这个问题,期待高手解决,我一直想:最好有个程序,点取一点,它能自动四周封闭边界!!!
发表于 2014-5-24 19:35 | 显示全部楼层
属于悬挂线问题

本帖子中包含更多资源

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

x
 楼主| 发表于 2014-5-30 18:03 | 显示全部楼层
xyp1964 发表于 2014-5-24 19:35
属于悬挂线问题

可否给一个具体的的解释或链接, 在论坛上搜了一下, 没有找到悬挂线的具体说明
发表于 2014-6-9 05:08 | 显示全部楼层
本帖最后由 llsheng_73 于 2014-6-11 21:45 编辑

  1. (defun c:EX(/ dcl ctl getvalue lys l)
  2.   (defun getvalue()
  3.     (list(CAR(MEMBER(nth(atoi(get_tile"LA"))LYS)(STB"LAYER")))
  4.          (if(atof(get_tile"JL"))(atof(get_tile"JL"))0.5)
  5.          (IF(=(get_tile"ALL")"1")"1""2")))
  6.   (setq dcl(makedcl'"ZDEX:dialog{label=\"~多线段自动延伸~\";:column{:row{:edit_box{label=\"限定距离\";key=\"JL\";edit_width=3;}:popup_list{label=\"图层\";key=\"LA\";}}:row{key=\"GET\";:radio_button{label=\"自动\";key=\"ALL\";value=\"1\";}:radio_button{label=\"选择\";key=\"MANU\";}:button{key=\"ESC\";label=\"取消\";is_cancel=true;}:button{key=\"GO\";label=\"确定\";}}}}")
  7.         LYS(CONS"所有图层"(STB"LAYER"))ctl 3)
  8.   (while(> ctl 2)(new_dialog"ZDEX"dcl)
  9.     (start_list"LA")(mapcar'add_list LYS)(end_list)
  10.     (set_tile"JL""0.5")
  11.     (action_tile"GO""(setq l(getvalue))(done_dialog 1)")
  12.     (action_tile"ESC""(done_dialog 0)")
  13.     (setq ctl (start_dialog))
  14.     )(unload_dialog dcl)
  15.   (cond((= ctl 1)(layon)(ex(car l)(cadr l)(last l))(layreset)))
  16.   (princ))
  17. (defun layon();图层全开、解锁、解冻
  18.   (foreach x(setq *layststatus(mapcar'(lambda(x)(entget(TBLOBJNAME"layer"x)))(stb"layer")))
  19.     (entmod(subst(cons 62(abs(cdr(assoc 62 x))))(assoc 62 x)(subst'(70 . 0)(assoc 70 x)x)))))
  20. (defun layreset();;恢复图层
  21.   (foreach x *layststatus(entmod x))
  22.   (setq *layststatus nil))
  23. (Defun STB(TAB / snl sll)
  24.   (SetQ sll(TblNext TAB T))
  25.   (While(SetQ snl(Cons(Cdr(Assoc 2 sll))snl)sll(TblNext TAB nil)))
  26.   (vl-sort snl'<))
  27. (defun makedcl(str / dclfile dclHandle)
  28.     (setq dclfile(vl-filename-mktemp nil nil ".dcl")dclHandle(open dclfile "w"))
  29.     (write-line str dclHandle)
  30.     (close dclHandle)
  31.     (setq dclHandle(load_dialog dclfile))
  32.     (vl-file-delete dclfile)
  33.     dclHandle)
  34. (defun array->list(l / i p)
  35.   (if(>(vlax-safearray-get-u-bound l 1)1)
  36.       (progn
  37.         (setq l(vlax-safearray->list l)i -3)
  38.         (repeat(/(length l)3)
  39.           (setq i(+ 3 i)p(cons(list(nth i l)(nth(+ 1 i)l))p))))))
  40. (defun SstoEs(ss / a en lst)
  41.   (if ss(progn(setq a -1)
  42.          (while(setq en(ssname ss(setq a(1+ a))))
  43.            (setq lst(cons en lst)))))
  44.   lst)
  45. (defun ex(la jl fs / ss a b c d);;fs"1"全选择"2"手动选择
  46.   (setq a(if(null la)'((0 . "*lyline"))(list'(0 . "*lyline")(cons 8 la)))
  47.         ss(sstoes(if(="1"fs)(ssget"X" a)(ssget a))))
  48.   (foreach a ss
  49.     (setq s1(vl-remove a ss)a(vlax-ename->vla-object a))
  50.     (foreach b s1
  51.       (setq b(vlax-ename->vla-object b)
  52.             d(xlst(array->list(vlax-variant-value(vla-IntersectWith a b 0)))(array->list(vlax-variant-value(vla-IntersectWith a b 1)))))
  53.       (foreach c d
  54.         (if(<(distance(setq b(reverse(cdr(reverse(vlax-curve-getClosestPointTo a c 0)))))c)jl)
  55.           (entmod(subst(cons 10 c)(cons 10 b)(entget(vlax-vla-object->ename a))))))
  56.       )))

只适合多线段,因为别的线我很少涉及到,所以没弄它
发表于 2014-6-9 06:09 | 显示全部楼层
no function definition: SSTOES
发表于 2014-6-9 13:49 | 显示全部楼层
no function definition: SSTOES版主可否补齐!期待
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-28 20:53 , Processed in 0.808785 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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