QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
请大家帮忙看看这个功能能否实现.我想要的效果是在图中我画一条直线,当我点一个删除按钮然后提示让我选择一条直线,之后与这条直线相交的所有对象都删除了,不与之相交的对象保留.谢谢了
 楼主| 发表于 2009-5-27 19:39:39 | 显示全部楼层 来自: 中国江苏无锡
我只能实现与直线相交的都删除但不能指定一条直线,要是有很多条直线我就搞不定了,大家帮我想想办法
发表于 2009-5-27 21:40:54 | 显示全部楼层 来自: 中国台湾
;;; No error check' Q4 s1 A1 f! G* j4 F, o
;;; for test only
7 ^+ i6 |1 j3 ?% i+ P(defun C:Test ()
. b3 F% q" j7 \6 D- E   (setq ee (entsel)
7 ~0 W2 _2 V. F" F9 b7 k         ee (car ee)
2 p  m# h8 @. a+ T# n1 u! |, K0 _$ `        dat (entget ee)
7 M/ \: ]8 Z3 t! ?8 k; q         pa (cdr (assoc 10 dat)) ( V: L3 |+ |3 k$ Y! P/ v( T* n& z/ i
         pb (cdr (assoc 11 dat))
1 k4 H9 q( ~- s( N& v3 H   )
: ~; ]/ M2 Y9 o$ c) S2 P   (command "Erase" "f" pa pb "" "r" ee "")$ f' R5 I& b6 N5 ?: J$ V7 w( K
)
 楼主| 发表于 2009-5-30 18:34:08 | 显示全部楼层 来自: 中国江苏无锡
我用的是VBA呀,能不能给VBA代码,详细点的,谢谢了!
发表于 2009-5-30 21:12:01 | 显示全部楼层 来自: 中国
  1. - E9 B3 J; A7 A. J+ b
  2.     Dim E As AcadEntity, L As AcadLine, P As Variant
    ) {$ l" x7 ~3 ~  g% _+ z+ g1 f: I
  3.     On Error Resume Next; ~7 I7 ^' f' Y. j: ]
  4.     With ThisDrawing
    7 \$ Y3 l, C$ C0 e" l( e! \
  5.         Do6 d( D6 i3 W  }* Z7 _% n6 v
  6.             .Utility.GetEntity E, P, vbCrLf & "选择直线:"9 G' \1 r" O. O6 X  ]
  7.             If Err Then
    $ V: g; d  H  ]5 ]
  8.                 Exit Sub
    ! }' {" _& d& E4 b" ^! S
  9.             ElseIf E.ObjectName = "AcDbLine" Then
    0 b: I0 Y" I. t6 u# V
  10.                 Exit Do; u# }1 a; v' R/ S- F
  11.             End If
    5 j8 D9 L1 V# w* l9 C8 A
  12.         Loop' d+ b9 V  ~" Z& `2 m
  13.         Set L = E
    / m  J- a+ |$ \) X6 S
  14.         For Each E In .ModelSpace
    * h% P; U! Q' L* s2 [7 ^% f9 Y
  15.             P = L.IntersectWith(E, acExtendNone)1 Y8 M# i, p4 O$ Z# n* r
  16.             If UBound(P) >= 2 Then E.Delete3 W- _7 X! \6 g( e0 I& Z* T
  17.         Next
    7 @; D9 q) \8 t/ [! R- k
  18.     End With6 o* w& R- i& T2 u+ W
复制代码
 楼主| 发表于 2009-5-31 19:18:21 | 显示全部楼层 来自: 中国江苏无锡
版主你太厉害了,能推荐点资料吗?你是怎么学这VBA的?
6 Z7 I: a( Z- O! O1 ~( s4 t非常感谢
发表于 2009-6-4 16:01:02 | 显示全部楼层 来自: 中国广东东莞
原帖由 SunVei 于 2009-5-27 21:40 发表 http://www.3dportal.cn/discuz/images/common/back.gif
" B+ u; X  n; E! d;;; No error check# T1 V7 w1 r6 R) j; \7 Z; v8 t4 r
;;; for test only
' S" X$ J3 u4 \5 O: D) p(defun C:Test ()# L5 Y; d! F# d. G
   (setq ee (entsel)% V$ B( b1 p" ^  o
         ee (car ee)
& u0 u5 b: F6 C; M9 b! _        dat (entget ee) . S% u) b" U9 s2 H6 g% y' _- q
         pa (cdr (assoc 10 dat))
6 q8 M& e  V9 [8 T, E         pb (cdr (assoc 11 dat))
8 E- H3 \3 m% t( n7 D# V    ...

4 y+ Q9 ^6 p( m  t- e5 I( B/ q, }9 ?" Q
) F# v5 P% y5 r* W# S7 X( F: p, @' V4 v1 \/ r7 y# Z3 z! m: |
不错的办法,只是如果异面直线的话不也被咔嚓了?
发表于 2009-6-5 15:07:26 | 显示全部楼层 来自: 中国台湾
代码是跟着需求在走的
7 O' `4 @* f' p6 B- Y3 F! p为自己量身定做最顺手 .....
发表于 2009-7-8 10:37:41 | 显示全部楼层 来自: 中国北京
以直线两个端点为对角点的长方形为cross方式选择实体,然后在选择集判断每个实体是否跟直线相交,相交的就删除
发表于 2015-1-9 09:55:09 | 显示全部楼层 来自: 中国广东中山

4 M# ?4 _3 U  b- S& i版主能不能做成一个文件啊?本人不能这方面的,不过很想用用哦
3 `) ?' C  l' h" O谢谢
发表于 2015-1-9 15:12:41 | 显示全部楼层 来自: 中国辽宁本溪
就是个栏选呗,没什么
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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