QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
10天前
查看: 4556|回复: 10
收起左侧

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

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

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

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

x
请大家帮忙看看这个功能能否实现.我想要的效果是在图中我画一条直线,当我点一个删除按钮然后提示让我选择一条直线,之后与这条直线相交的所有对象都删除了,不与之相交的对象保留.谢谢了
 楼主| 发表于 2009-5-27 19:39:39 | 显示全部楼层 来自: 中国江苏无锡
我只能实现与直线相交的都删除但不能指定一条直线,要是有很多条直线我就搞不定了,大家帮我想想办法
发表于 2009-5-27 21:40:54 | 显示全部楼层 来自: 中国台湾
;;; No error check
+ I  z% Y$ q* W; h+ B( I;;; for test only) V9 U/ |( F* T
(defun C:Test ()
$ o- b1 B) N& Q6 K3 |! n" G0 T   (setq ee (entsel)4 t5 v" U5 h8 j* }! Q
         ee (car ee)
1 S) @! l2 a0 u  n4 ~* G! v3 h        dat (entget ee)
# @0 F* Y' p9 Z         pa (cdr (assoc 10 dat)) 7 J0 c, u6 x2 S& g
         pb (cdr (assoc 11 dat)) , o: H9 J8 Z, e3 s( {1 t0 T
   )& l* t+ O" d# s5 g
   (command "Erase" "f" pa pb "" "r" ee "")" p9 Z% h; h# l6 w0 H% d6 }, x
)
 楼主| 发表于 2009-5-30 18:34:08 | 显示全部楼层 来自: 中国江苏无锡
我用的是VBA呀,能不能给VBA代码,详细点的,谢谢了!
发表于 2009-5-30 21:12:01 | 显示全部楼层 来自: 中国

  1. ' @, p) |" O; }5 n0 @. {9 x+ u
  2.     Dim E As AcadEntity, L As AcadLine, P As Variant
    1 K; l% C) d$ p* N, k+ O* i
  3.     On Error Resume Next; I0 q. `7 a. ]" z
  4.     With ThisDrawing& v4 k  m' s, C+ ?8 Y+ O1 p
  5.         Do
    : i9 c4 N; ]4 @3 r: U8 \. }  o/ g
  6.             .Utility.GetEntity E, P, vbCrLf & "选择直线:"
    ' T9 V+ C) J) c8 f# q3 g! ^: C2 Z
  7.             If Err Then: r* X' ^' z7 s
  8.                 Exit Sub" Z7 C: o( X% h- C0 B
  9.             ElseIf E.ObjectName = "AcDbLine" Then; B5 x& \* @$ l/ V
  10.                 Exit Do# M% t7 n) |( O% w7 Y+ _; o: R
  11.             End If
    " m; u* K9 V, A4 r# c9 T  Z1 D
  12.         Loop3 L3 z2 O, G5 l. }3 G* [% c) c
  13.         Set L = E
    ; m! N5 _* C4 o3 r* L
  14.         For Each E In .ModelSpace" M" D' c9 S- j- w. v( @6 `
  15.             P = L.IntersectWith(E, acExtendNone)  U% y8 a$ r; |7 k* T  R
  16.             If UBound(P) >= 2 Then E.Delete
    $ t8 N4 _7 j& V. o' Q
  17.         Next1 e3 w' u; X7 ?* d# G1 _& Q
  18.     End With, H3 }: k' t! F' P$ _+ _
复制代码
 楼主| 发表于 2009-5-31 19:18:21 | 显示全部楼层 来自: 中国江苏无锡
版主你太厉害了,能推荐点资料吗?你是怎么学这VBA的?
, I) b' W& }# R4 h非常感谢
发表于 2009-6-4 16:01:02 | 显示全部楼层 来自: 中国广东东莞
原帖由 SunVei 于 2009-5-27 21:40 发表 http://www.3dportal.cn/discuz/images/common/back.gif, R7 O6 ^- |7 d; ]1 T0 Y& B
;;; No error check  y0 Q% u, \# L
;;; for test only" f3 ]0 T$ I$ p( t$ d9 j- ~9 [1 k- k. @
(defun C:Test ()% N3 P1 G/ Q+ J
   (setq ee (entsel)$ a+ A5 d6 V: i( z! a" i  C
         ee (car ee)3 a  R# M! f( c$ \+ P
        dat (entget ee) 9 J6 t# g4 Z# G
         pa (cdr (assoc 10 dat))
- u" `4 A/ p: B! A. N5 l         pb (cdr (assoc 11 dat))
: C- p7 Y5 J& @& ~- e    ...
2 F# ^1 U% c) h% ~

! ?9 x: G2 W" n: e
. }& }8 i- v# ?* l! p. }$ f% z& }不错的办法,只是如果异面直线的话不也被咔嚓了?
发表于 2009-6-5 15:07:26 | 显示全部楼层 来自: 中国台湾
代码是跟着需求在走的
8 q$ y$ X2 a" i% Z为自己量身定做最顺手 .....
发表于 2009-7-8 10:37:41 | 显示全部楼层 来自: 中国北京
以直线两个端点为对角点的长方形为cross方式选择实体,然后在选择集判断每个实体是否跟直线相交,相交的就删除
发表于 2015-1-9 09:55:09 | 显示全部楼层 来自: 中国广东中山

+ g) x% D9 V! D# \# L' I* e4 K版主能不能做成一个文件啊?本人不能这方面的,不过很想用用哦
. _4 F" Z1 U% K6 D8 s% o5 {6 @- ~谢谢
发表于 2015-1-9 15:12:41 | 显示全部楼层 来自: 中国辽宁本溪
就是个栏选呗,没什么
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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