QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
请大家帮忙看看这个功能能否实现.我想要的效果是在图中我画一条直线,当我点一个删除按钮然后提示让我选择一条直线,之后与这条直线相交的所有对象都删除了,不与之相交的对象保留.谢谢了
 楼主| 发表于 2009-5-27 19:39:39 | 显示全部楼层 来自: 中国江苏无锡
我只能实现与直线相交的都删除但不能指定一条直线,要是有很多条直线我就搞不定了,大家帮我想想办法
发表于 2009-5-27 21:40:54 | 显示全部楼层 来自: 中国台湾
;;; No error check6 C4 ]% y+ B. e5 E% x
;;; for test only* u; P, B; _( j
(defun C:Test ()4 Z: m7 H' @, i3 n& M
   (setq ee (entsel)- E1 }* P5 ~9 M
         ee (car ee). ]- d" c& l$ A" w
        dat (entget ee)
4 I' a5 p; G% d! ?0 y         pa (cdr (assoc 10 dat))
/ P& ~" X3 {" j# Y: w         pb (cdr (assoc 11 dat)) 2 Y; j# }4 N- i' @* G
   )
# u+ x: `8 I; E) i. Q   (command "Erase" "f" pa pb "" "r" ee "")" S6 b3 Y0 O& s) D* v9 z* ?
)
 楼主| 发表于 2009-5-30 18:34:08 | 显示全部楼层 来自: 中国江苏无锡
我用的是VBA呀,能不能给VBA代码,详细点的,谢谢了!
发表于 2009-5-30 21:12:01 | 显示全部楼层 来自: 中国
  1. 3 U" Q( @# m& g! I
  2.     Dim E As AcadEntity, L As AcadLine, P As Variant
    6 [! K- [" ~) G+ P0 Z- y+ i3 g5 m
  3.     On Error Resume Next
    * f8 B" H9 T4 i% w" A( |' b
  4.     With ThisDrawing# ~1 B5 U) ^5 U/ d4 }9 Y: J. Z
  5.         Do
    ! }$ Z7 {7 N9 ?# X2 c
  6.             .Utility.GetEntity E, P, vbCrLf & "选择直线:"
    " _1 w; ~0 M8 B! [; l5 K
  7.             If Err Then2 o4 e0 x4 T( }8 b) F; f( m
  8.                 Exit Sub2 @$ Q" V. P) ^# Z
  9.             ElseIf E.ObjectName = "AcDbLine" Then& R! J! c- X9 r: O& k/ @  i
  10.                 Exit Do
    ( Z  c3 Q5 x5 L- S7 T. G
  11.             End If4 V9 _8 E* D: P5 Q+ a& D6 b
  12.         Loop) q. ?1 v) A2 H: ~$ Z6 F* r
  13.         Set L = E
    . S3 B2 `( ?( Q7 w+ R
  14.         For Each E In .ModelSpace
    # Q5 y+ E) U7 w8 A8 E; c( X
  15.             P = L.IntersectWith(E, acExtendNone)2 f3 d2 j1 [$ P$ s( l
  16.             If UBound(P) >= 2 Then E.Delete/ z3 m2 Q0 b* S; `  y) J) D, ]
  17.         Next5 ]2 _" n& _- l, @
  18.     End With5 z! U8 O3 i% b) ^. O$ G
复制代码
 楼主| 发表于 2009-5-31 19:18:21 | 显示全部楼层 来自: 中国江苏无锡
版主你太厉害了,能推荐点资料吗?你是怎么学这VBA的?$ Z( I# x, a! v; G6 L6 N7 ^
非常感谢
发表于 2009-6-4 16:01:02 | 显示全部楼层 来自: 中国广东东莞
原帖由 SunVei 于 2009-5-27 21:40 发表 http://www.3dportal.cn/discuz/images/common/back.gif
6 S6 s7 i- F1 e' a4 i: L" x;;; No error check& }: q1 J5 r! g& G. @/ Z' R: L
;;; for test only4 B/ h$ x+ D) h
(defun C:Test ()( G* `, D9 h) y, H6 s
   (setq ee (entsel)# w1 a$ o! N# p5 j8 m/ V( |
         ee (car ee). K% h& |3 a6 ^5 j
        dat (entget ee) 9 I' b7 A3 X( g: J2 E/ K1 w
         pa (cdr (assoc 10 dat))
$ m& S, W, I4 v1 T5 _         pb (cdr (assoc 11 dat))
; _! [( a6 m' d" H) I. M    ...
8 q! L; \- D" S) Z( ~$ S& f, c& |

# y; Q6 L( S% E+ q! e# X* `+ c' g3 e# w' H: G: m2 O2 G
不错的办法,只是如果异面直线的话不也被咔嚓了?
发表于 2009-6-5 15:07:26 | 显示全部楼层 来自: 中国台湾
代码是跟着需求在走的$ P3 }' [9 w" ~- O4 g
为自己量身定做最顺手 .....
发表于 2009-7-8 10:37:41 | 显示全部楼层 来自: 中国北京
以直线两个端点为对角点的长方形为cross方式选择实体,然后在选择集判断每个实体是否跟直线相交,相交的就删除
发表于 2015-1-9 09:55:09 | 显示全部楼层 来自: 中国广东中山

/ ?) _6 P8 L- j& z* I版主能不能做成一个文件啊?本人不能这方面的,不过很想用用哦
! y6 i/ S2 ]- r5 g5 b7 D谢谢
发表于 2015-1-9 15:12:41 | 显示全部楼层 来自: 中国辽宁本溪
就是个栏选呗,没什么
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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