明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: flytoday

求个删除双线间的线插件麻烦高手帮帮忙谢谢

  [复制链接]
发表于 2013-1-25 23:08:00 | 显示全部楼层
本帖最后由 xiabin68 于 2013-1-26 00:23 编辑

搞定了,你试一试要的不,感谢Z版 的帮助才能写出代码




本帖子中包含更多资源

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

x

点评

兄弟你这个用不了哦  发表于 2013-1-25 23:44
谢谢。。。。严哥的绝对好用哈哈  发表于 2013-1-25 23:39
 楼主| 发表于 2013-1-25 23:40:19 | 显示全部楼层
哈哈严哥出品绝对精品好用。。谢谢
发表于 2013-1-26 00:23:28 | 显示全部楼层
那就不知道怎么会事了,
发表于 2013-1-26 04:33:21 来自手机 | 显示全部楼层
CASS几年间没有什么新功能,连帮助文件依旧那么粗糙。看到大家快吧它所有的功能重写完了,还都是源码公布。它坐在中国第一测绘软件的位置,再不出点新功能,开放一点帮助测绘人成长,它应该脸红。大侠们写出这等厉害的程序,会逼它上进的。
发表于 2013-5-25 23:01:27 | 显示全部楼层
附上源码:
  1. ;;;只对水平垂直双线有效
  2. (defun c:tt(/ e1 e2 eclst1 fuzz ss n midp ss1 elst nearplst1 nearplst2)
  3.   (princ"\n选择删除范围")
  4.   (setq ss(ssget '((0 . "*line"))))
  5.   (setq e1(car(entsel"\n请选择要删除一类线的一个样本"))
  6.         eclst1(tt e1)
  7.         ;fuzz 1500;;;可自己调
  8.         )
  9.   (setq fuzz(getdist"\n平行线间距"))
  10.   (command "zoom" "all")
  11.   (repeat (setq n(sslength ss))
  12.     (setq e2(ssname ss(setq n(1- n)))
  13.           eclst2(tt e2)
  14.           )
  15.     (if (equal eclst1 eclst2)
  16.       (progn
  17.       (setq midp(vlax-curve-getpointatparam e2 (/(-(vlax-curve-getparamatpoint e2 (vlax-curve-getendpoint e2))
  18.                                     (vlax-curve-getparamatpoint e2(vlax-curve-getstartpoint e2)))2)
  19.                   )
  20.         )
  21.       (setq ss1(ssget "c" (list (-(car midp)fuzz)(-(cadr midp)fuzz))(list (+(car midp)fuzz)(+(cadr midp)fuzz))
  22.              (list '(-4 . "<and")'(0 . "*line")'(-4 . "<not")(cons 8 (car eclst1))'(-4 . "not>")'(-4 . "and>"))
  23.              ))
  24.       (if ss1(setq elst(ss2lst ss1)))
  25.       (foreach x elst(setq nearplst1(cons (vlax-curve-getclosestpointto x midp)nearplst1)))
  26.       (setq nearplst1(vl-sort nearplst1 '(lambda(x y)(<(distance midp  x)(distance midp  y)))))
  27.         (setq memlst1( car nearplst1))
  28.         (setq memlst2(cadr nearplst1))
  29.         (if (=(abs(-(car memlst1)(car memlst2)))(+(distance memlst1 midp)(distance memlst2 midp)))
  30.             (vla-delete (vlax-ename->vla-object e2))
  31.             (progn
  32.               (if (=(abs(-(cadr memlst1)(cadr memlst2)))(+(distance  memlst1 midp)(distance  memlst2 midp)))
  33.                (vla-delete (vlax-ename->vla-object e2))
  34.               )
  35.             )
  36.         )
  37.       )
  38.       )
  39.     (setq nearplst1 nil)
  40.     )
  41. (command "zoom" "p")
  42. (princ)
  43. )
  44. (defun tt(e / s la col lst)
  45.   (setq s(entget e)
  46.         la(cdr(assoc 8 s))
  47.         col(cdr(assoc 62 s))
  48.         )
  49.   (setq lst(list la col))
  50.   (if (=(cadr  lst)nil)
  51.     (setq lst(list (car lst) (cdr(assoc 62(entget(tblobjname "layer" la))))))
  52.     )
  53.   lst
  54.   )
  55. (defun ss2lst (ss / n lst)
  56. (repeat (setq n(sslength ss))
  57.    (setq lst (cons (ssname ss (setq n (1- n))) lst))
  58.    )
  59. lst
  60. )
  61. (princ"\n记住我吧,命令tt")

评分

参与人数 1明经币 +1 收起 理由
flytoday + 1 很给力!谢谢严哥~

查看全部评分

发表于 2013-9-1 22:49:09 | 显示全部楼层
用于梁删中心线,学习
发表于 2013-9-3 09:23:24 | 显示全部楼层

用于梁删中心线,学习
发表于 2018-6-27 14:41:50 | 显示全部楼层
在吗你的qq多少呀 ,我想加你,我看你在论坛发的和我的思路很像
发表于 2018-6-27 14:43:10 | 显示全部楼层
yjr111 发表于 2013-1-25 17:07
起作用的在我手里啊

严老的你qq多少啊
发表于 2018-6-27 21:57:11 | 显示全部楼层
用于梁删中心线,谢谢分享实用程序!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 13:34 , Processed in 0.162750 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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