QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
请大家帮忙看看这个功能能否实现.我想要的效果是在图中我画一条直线,当我点一个删除按钮然后提示让我选择一条直线,之后与这条直线相交的所有对象都删除了,不与之相交的对象保留.谢谢了
 楼主| 发表于 2009-5-27 19:39:39 | 显示全部楼层 来自: 中国江苏无锡
我只能实现与直线相交的都删除但不能指定一条直线,要是有很多条直线我就搞不定了,大家帮我想想办法
发表于 2009-5-27 21:40:54 | 显示全部楼层 来自: 中国台湾
;;; No error check
9 T2 |2 h0 p2 i$ x8 j;;; for test only
; w4 I! Y/ q4 T6 {  ](defun C:Test ()$ F! O2 U; T0 R( x
   (setq ee (entsel)
! S8 R, V* l# m0 b, c. w  \         ee (car ee)# I5 G. e( X. R$ o' K& Y
        dat (entget ee) * \! m  M( z9 u9 e) S. ^2 O( k
         pa (cdr (assoc 10 dat))
5 R; d( a2 Y( R8 _  E         pb (cdr (assoc 11 dat))
7 U2 R+ l$ r! r$ A   )
8 q( I5 U  z" o   (command "Erase" "f" pa pb "" "r" ee "")! `3 C9 ~# ~! @
)
 楼主| 发表于 2009-5-30 18:34:08 | 显示全部楼层 来自: 中国江苏无锡
我用的是VBA呀,能不能给VBA代码,详细点的,谢谢了!
发表于 2009-5-30 21:12:01 | 显示全部楼层 来自: 中国

  1. # E$ {6 u; g. t
  2.     Dim E As AcadEntity, L As AcadLine, P As Variant) Z/ o$ }/ K$ T
  3.     On Error Resume Next3 X' {- y+ X* _2 P6 ~
  4.     With ThisDrawing
    ) l: V! ~4 t7 K4 U4 x+ b7 P# w1 Z1 x
  5.         Do
      H  ?) o, V, T/ ]" x+ h6 o+ ?
  6.             .Utility.GetEntity E, P, vbCrLf & "选择直线:": Y3 E% S5 i( f+ F. P
  7.             If Err Then
    / l0 ]/ d( u. z6 c3 h* W! g
  8.                 Exit Sub( V! c! ~$ f" S% T3 {
  9.             ElseIf E.ObjectName = "AcDbLine" Then
    3 A( c$ c9 i* t/ X# f& j
  10.                 Exit Do6 K* e: G! W& H5 k
  11.             End If
    # Z+ C7 j1 b+ L
  12.         Loop) K; l/ }6 L1 c# c8 `) G( i
  13.         Set L = E  o* B0 ^4 S5 |) h
  14.         For Each E In .ModelSpace2 }5 v  \. a, U( C- `2 _
  15.             P = L.IntersectWith(E, acExtendNone)
    ; c7 \, F9 V! o( X6 x* n: |4 W. N
  16.             If UBound(P) >= 2 Then E.Delete
    # g" X8 M, W7 \/ ~, i8 e" t
  17.         Next+ Y- \0 s+ }$ D
  18.     End With7 M* e8 ?! A" ^: Q
复制代码
 楼主| 发表于 2009-5-31 19:18:21 | 显示全部楼层 来自: 中国江苏无锡
版主你太厉害了,能推荐点资料吗?你是怎么学这VBA的?. D3 N2 t. h- E+ _
非常感谢
发表于 2009-6-4 16:01:02 | 显示全部楼层 来自: 中国广东东莞
原帖由 SunVei 于 2009-5-27 21:40 发表 http://www.3dportal.cn/discuz/images/common/back.gif( Q$ h. |9 [+ _: i+ \
;;; No error check
! m" L" r% m3 \: |  W" \6 t& H9 s;;; for test only* ]1 v& _+ K) f$ y& B
(defun C:Test ()
. \$ W0 P5 j. K; `- W& B$ E' F8 N   (setq ee (entsel)
- i9 z! O8 q6 |3 r         ee (car ee)
% f. N6 e) e: n* X) z. V        dat (entget ee) - z: g( c& c9 D- L% A& f2 ?" x
         pa (cdr (assoc 10 dat)) ! P, U* @& M9 x2 c* ~9 e& b
         pb (cdr (assoc 11 dat)) 1 J' ]1 ]  d) D/ Z) ~
    ...

+ ^5 T8 b( l. \
; s+ `! k3 `7 D' X* F2 a2 P4 c  i' ^; z7 s
不错的办法,只是如果异面直线的话不也被咔嚓了?
发表于 2009-6-5 15:07:26 | 显示全部楼层 来自: 中国台湾
代码是跟着需求在走的
8 n2 F2 k! R; L6 r为自己量身定做最顺手 .....
发表于 2009-7-8 10:37:41 | 显示全部楼层 来自: 中国北京
以直线两个端点为对角点的长方形为cross方式选择实体,然后在选择集判断每个实体是否跟直线相交,相交的就删除
发表于 2015-1-9 09:55:09 | 显示全部楼层 来自: 中国广东中山
! v9 M. F9 E9 c4 p& R
版主能不能做成一个文件啊?本人不能这方面的,不过很想用用哦6 F, q; j3 r( C7 L
谢谢
发表于 2015-1-9 15:12:41 | 显示全部楼层 来自: 中国辽宁本溪
就是个栏选呗,没什么
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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