QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 4675|回复: 10
收起左侧

[讨论] 如何实现删除我与所选直线相交的对象?

[复制链接]
发表于 2009-5-27 19:36:13 | 显示全部楼层 |阅读模式 来自: 中国江苏无锡

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

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

x
请大家帮忙看看这个功能能否实现.我想要的效果是在图中我画一条直线,当我点一个删除按钮然后提示让我选择一条直线,之后与这条直线相交的所有对象都删除了,不与之相交的对象保留.谢谢了
 楼主| 发表于 2009-5-27 19:39:39 | 显示全部楼层 来自: 中国江苏无锡
我只能实现与直线相交的都删除但不能指定一条直线,要是有很多条直线我就搞不定了,大家帮我想想办法
发表于 2009-5-27 21:40:54 | 显示全部楼层 来自: 中国台湾
;;; No error check! Y+ l8 n/ N( c0 {8 T. A
;;; for test only
8 M4 R, |2 I' H: d% R(defun C:Test ()' Z. E8 ?1 ?! m1 N+ f& h
   (setq ee (entsel)
& a4 l$ k4 p1 ~- ]; v+ B& s0 B         ee (car ee)' ?' W2 P+ H3 h9 N. a
        dat (entget ee)
* F' A+ \' e' y4 e8 P" j         pa (cdr (assoc 10 dat)) 3 [) p2 q- d) Y2 Z$ A
         pb (cdr (assoc 11 dat))
# ~6 s1 M+ ^0 M6 s   )# u1 q4 C0 [+ b! ^, ^" B7 A
   (command "Erase" "f" pa pb "" "r" ee "")
* `7 U; b" g% s" S! n)
 楼主| 发表于 2009-5-30 18:34:08 | 显示全部楼层 来自: 中国江苏无锡
我用的是VBA呀,能不能给VBA代码,详细点的,谢谢了!
发表于 2009-5-30 21:12:01 | 显示全部楼层 来自: 中国
  1. : |  P; e6 ^, [
  2.     Dim E As AcadEntity, L As AcadLine, P As Variant' g' l% F! }5 m* \+ d0 C0 x
  3.     On Error Resume Next
    ( T! \" J: O7 d5 {2 c& i
  4.     With ThisDrawing
    , T7 y0 |( J) Z: `
  5.         Do5 U- p# T; N# Y+ D! B. z
  6.             .Utility.GetEntity E, P, vbCrLf & "选择直线:"$ A* }7 g) S4 `( P4 y' }( k/ ]
  7.             If Err Then
    0 _8 |/ A" ]" }/ Q
  8.                 Exit Sub* ?1 }9 q  h( N# o, `
  9.             ElseIf E.ObjectName = "AcDbLine" Then
    1 r4 R: \, ]6 S& Y; R7 |
  10.                 Exit Do! F* I: N' Z5 h! b1 F
  11.             End If7 B0 v* A8 E8 n" h3 m' M" ?( n: w
  12.         Loop
    8 f! u# m2 q- R- f( p* {
  13.         Set L = E
    ' J. D1 c$ y3 U0 H/ }
  14.         For Each E In .ModelSpace
    ( _3 L  `6 n: E
  15.             P = L.IntersectWith(E, acExtendNone)
    - t5 d3 S' G* T6 u' G' E6 Z
  16.             If UBound(P) >= 2 Then E.Delete- W% E9 v6 h$ M4 M. H3 c
  17.         Next
    : t1 F  h, d% U9 g
  18.     End With- q1 l, _7 O. s
复制代码
 楼主| 发表于 2009-5-31 19:18:21 | 显示全部楼层 来自: 中国江苏无锡
版主你太厉害了,能推荐点资料吗?你是怎么学这VBA的?
' q8 @; c" K! L. `3 G0 r非常感谢
发表于 2009-6-4 16:01:02 | 显示全部楼层 来自: 中国广东东莞
原帖由 SunVei 于 2009-5-27 21:40 发表 http://www.3dportal.cn/discuz/images/common/back.gif: S1 _8 y- [! c! e
;;; No error check
+ y- U' L& N+ x  o- F' U;;; for test only
* j2 b" ]9 ]8 u6 m- {) f5 G(defun C:Test ()2 p6 j- E6 K7 w. V! ^6 H
   (setq ee (entsel)9 v( J  U* ?* @: h, `5 o5 i5 D8 d, n
         ee (car ee)
9 C7 j$ K7 P$ a        dat (entget ee) # v3 f. I9 J) Z% D1 T
         pa (cdr (assoc 10 dat))
9 }3 r( c' I' _0 b1 q* a. D- X         pb (cdr (assoc 11 dat)) 4 c  ]8 P. i/ Z
    ...

$ u1 e# m- X5 t- E' i! a# ?* X2 ]

6 ^  S$ m% u" w' B! S* _; C不错的办法,只是如果异面直线的话不也被咔嚓了?
发表于 2009-6-5 15:07:26 | 显示全部楼层 来自: 中国台湾
代码是跟着需求在走的
7 J; ~2 U/ y$ ~6 ^$ D. I9 X: `为自己量身定做最顺手 .....
发表于 2009-7-8 10:37:41 | 显示全部楼层 来自: 中国北京
以直线两个端点为对角点的长方形为cross方式选择实体,然后在选择集判断每个实体是否跟直线相交,相交的就删除
发表于 2015-1-9 09:55:09 | 显示全部楼层 来自: 中国广东中山
, Y- }  }3 l" d* h2 H+ e% Q0 _
版主能不能做成一个文件啊?本人不能这方面的,不过很想用用哦
" a, N$ _: G7 Q) [+ F谢谢
发表于 2015-1-9 15:12:41 | 显示全部楼层 来自: 中国辽宁本溪
就是个栏选呗,没什么
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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