QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
请大家帮忙看看这个功能能否实现.我想要的效果是在图中我画一条直线,当我点一个删除按钮然后提示让我选择一条直线,之后与这条直线相交的所有对象都删除了,不与之相交的对象保留.谢谢了
 楼主| 发表于 2009-5-27 19:39:39 | 显示全部楼层 来自: 中国江苏无锡
我只能实现与直线相交的都删除但不能指定一条直线,要是有很多条直线我就搞不定了,大家帮我想想办法
发表于 2009-5-27 21:40:54 | 显示全部楼层 来自: 中国台湾
;;; No error check4 @% z- T) ^7 [0 d. l
;;; for test only8 I  N. e: d; O' V. z/ N
(defun C:Test ()
4 f1 g9 Z+ I. K5 Y  p   (setq ee (entsel)( B. ]- K7 U) s
         ee (car ee)
. |0 D6 K: t# e" Q' s% e8 W        dat (entget ee)
$ D9 c6 H! g# j& z8 l" l2 W5 P9 k+ a         pa (cdr (assoc 10 dat)) ' h2 ?5 ~% T/ I) A  b, r
         pb (cdr (assoc 11 dat))
2 K3 k& j( ]6 X- U3 d/ \! [$ y   ). f9 ^4 F$ _! a
   (command "Erase" "f" pa pb "" "r" ee "")4 i- P2 s8 y# ~! T! Y- `" o+ t9 f2 |
)
 楼主| 发表于 2009-5-30 18:34:08 | 显示全部楼层 来自: 中国江苏无锡
我用的是VBA呀,能不能给VBA代码,详细点的,谢谢了!
发表于 2009-5-30 21:12:01 | 显示全部楼层 来自: 中国
  1. - r- ?( E2 k% D
  2.     Dim E As AcadEntity, L As AcadLine, P As Variant# T! m+ ~5 C: X/ R' [
  3.     On Error Resume Next3 Y" u3 T3 B* d+ O4 Y# l
  4.     With ThisDrawing7 r* {5 ^* ?/ @& ^
  5.         Do* O- X1 ^9 c3 l( l
  6.             .Utility.GetEntity E, P, vbCrLf & "选择直线:"
    ' e/ D! y+ s  q
  7.             If Err Then
    ) Y; C# o" V) V  b. K+ B5 |7 ^7 n
  8.                 Exit Sub( N; m/ Q( e9 S+ P' s! h/ x+ }
  9.             ElseIf E.ObjectName = "AcDbLine" Then
    6 q3 ~6 N/ i# s( L& M- r$ r
  10.                 Exit Do
    / p6 I; @3 d3 |$ J' y! u8 V! v" _
  11.             End If( O+ w$ |: O. K
  12.         Loop
    $ J/ _4 Z. ~  K
  13.         Set L = E
      w! b4 H& }, v! l
  14.         For Each E In .ModelSpace" l+ y3 W# A3 D+ N
  15.             P = L.IntersectWith(E, acExtendNone)
    6 X7 X4 A5 e( q( g2 k9 c% ?
  16.             If UBound(P) >= 2 Then E.Delete' f- o1 V" @5 h! o
  17.         Next2 ]$ p$ o7 l' x/ G
  18.     End With
    " I& ?5 U2 e) o6 [4 R9 m, x# o
复制代码
 楼主| 发表于 2009-5-31 19:18:21 | 显示全部楼层 来自: 中国江苏无锡
版主你太厉害了,能推荐点资料吗?你是怎么学这VBA的?
) p. ~7 x& W) B% r( ^. s3 N' u非常感谢
发表于 2009-6-4 16:01:02 | 显示全部楼层 来自: 中国广东东莞
原帖由 SunVei 于 2009-5-27 21:40 发表 http://www.3dportal.cn/discuz/images/common/back.gif6 d: m; R+ {8 K
;;; No error check
/ i3 O- n; x& z0 F2 ?$ B; };;; for test only
8 ~; H% V3 i: z4 r(defun C:Test ()
$ V9 E+ B3 F  G0 |  i   (setq ee (entsel)
6 F1 Z( B1 u" x1 q         ee (car ee)
0 J" U% N1 s" l7 ]% k9 |        dat (entget ee) ) ~/ V, }  v% n4 q$ [
         pa (cdr (assoc 10 dat)) ! |+ y* d) U$ w1 u& ^1 G, N
         pb (cdr (assoc 11 dat))
% Z& m* A4 I' A5 n    ...
. E5 W( w( _+ v$ `6 U
" B) _; A. _4 N5 v3 _1 m0 w, A" `
1 Q- h! M6 ~$ W+ b5 q: p
不错的办法,只是如果异面直线的话不也被咔嚓了?
发表于 2009-6-5 15:07:26 | 显示全部楼层 来自: 中国台湾
代码是跟着需求在走的3 z8 p' D- C1 ]4 [
为自己量身定做最顺手 .....
发表于 2009-7-8 10:37:41 | 显示全部楼层 来自: 中国北京
以直线两个端点为对角点的长方形为cross方式选择实体,然后在选择集判断每个实体是否跟直线相交,相交的就删除
发表于 2015-1-9 09:55:09 | 显示全部楼层 来自: 中国广东中山
9 W+ I5 r* K7 b4 p; v# T8 ?
版主能不能做成一个文件啊?本人不能这方面的,不过很想用用哦
. M9 c& C' g/ Y* e; z  Z6 H2 Z谢谢
发表于 2015-1-9 15:12:41 | 显示全部楼层 来自: 中国辽宁本溪
就是个栏选呗,没什么
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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