QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
请大家帮忙看看这个功能能否实现.我想要的效果是在图中我画一条直线,当我点一个删除按钮然后提示让我选择一条直线,之后与这条直线相交的所有对象都删除了,不与之相交的对象保留.谢谢了
 楼主| 发表于 2009-5-27 19:39:39 | 显示全部楼层 来自: 中国江苏无锡
我只能实现与直线相交的都删除但不能指定一条直线,要是有很多条直线我就搞不定了,大家帮我想想办法
发表于 2009-5-27 21:40:54 | 显示全部楼层 来自: 中国台湾
;;; No error check
5 _# j3 @) F8 [7 ]) Y;;; for test only. O9 m" m- v0 q3 ]& v& W
(defun C:Test ()
( x0 m' {; W. g* w: `6 @   (setq ee (entsel)
6 c8 }- x) Y8 d9 ?         ee (car ee)" z; d. K: q6 }$ h$ @" }
        dat (entget ee)
  P3 |% s' n2 O# b* g         pa (cdr (assoc 10 dat))
! {  l% ]3 \# `! Y/ B         pb (cdr (assoc 11 dat))
( q: S8 V6 k- b  L( t   )! N' w, ?* ~, T
   (command "Erase" "f" pa pb "" "r" ee "")
( ?1 }* a" s1 z; t, v* T! O' z)
 楼主| 发表于 2009-5-30 18:34:08 | 显示全部楼层 来自: 中国江苏无锡
我用的是VBA呀,能不能给VBA代码,详细点的,谢谢了!
发表于 2009-5-30 21:12:01 | 显示全部楼层 来自: 中国

  1. ' U4 n  o9 }' h/ Y8 i$ n
  2.     Dim E As AcadEntity, L As AcadLine, P As Variant
    " }% n1 k$ O# J5 e' P& j* ~
  3.     On Error Resume Next
    ( ~! y, v& c$ a- Q/ e5 R1 p
  4.     With ThisDrawing! e7 t2 H3 R3 }
  5.         Do/ [/ `& F7 q# G/ t6 _
  6.             .Utility.GetEntity E, P, vbCrLf & "选择直线:"& o1 o& Z' K" j" d
  7.             If Err Then
    2 {5 t" k$ J" o- @& `; ^
  8.                 Exit Sub
    / b# c& E% t5 E2 Q/ z( X
  9.             ElseIf E.ObjectName = "AcDbLine" Then
    - A+ y0 x1 g, O+ I  \
  10.                 Exit Do
    ; c) ^, A2 @& g  X. g$ `7 u0 K
  11.             End If
    ( Z: _* K2 j0 j0 d
  12.         Loop
    1 e- h6 v0 r0 w* Z1 v" z" j3 N* Y
  13.         Set L = E
    ) H$ V2 X4 o% c* K; ~
  14.         For Each E In .ModelSpace
    7 [! E! \, T8 J' f! M
  15.             P = L.IntersectWith(E, acExtendNone)
    * J" f' I3 P/ d* Z6 x1 D
  16.             If UBound(P) >= 2 Then E.Delete
    6 r' M8 D; j" I- K' B' J
  17.         Next
    # }, x( v; U/ k; p, f1 A
  18.     End With
    6 t' ^4 b- V' ?% I) g' V, C
复制代码
 楼主| 发表于 2009-5-31 19:18:21 | 显示全部楼层 来自: 中国江苏无锡
版主你太厉害了,能推荐点资料吗?你是怎么学这VBA的?' d# E3 T! w& K/ b7 W
非常感谢
发表于 2009-6-4 16:01:02 | 显示全部楼层 来自: 中国广东东莞
原帖由 SunVei 于 2009-5-27 21:40 发表 http://www.3dportal.cn/discuz/images/common/back.gif
/ u; }1 z0 t4 e$ X$ Y  s& i2 |;;; No error check  i8 q" Q* K- ]% D
;;; for test only' q4 N. h6 }) u& D; F
(defun C:Test ()
+ s% y% I$ r& W! G2 q- H   (setq ee (entsel)8 V6 y! N& X# p
         ee (car ee)% n. y# Q1 N5 [. ^) C
        dat (entget ee) + W( Z2 ^' _5 y% S/ E
         pa (cdr (assoc 10 dat))
+ ?7 L0 n) h$ a% q" y         pb (cdr (assoc 11 dat))
- x1 R* p% ^/ J' M  |) }    ...
* w3 P' f4 [4 A" m1 [3 y" C
8 m( E4 ~: t7 t: g' O1 b0 O
- T' b5 B  S$ g1 A) H% `" J
不错的办法,只是如果异面直线的话不也被咔嚓了?
发表于 2009-6-5 15:07:26 | 显示全部楼层 来自: 中国台湾
代码是跟着需求在走的
5 r0 L% ?+ }4 L% }1 s* b为自己量身定做最顺手 .....
发表于 2009-7-8 10:37:41 | 显示全部楼层 来自: 中国北京
以直线两个端点为对角点的长方形为cross方式选择实体,然后在选择集判断每个实体是否跟直线相交,相交的就删除
发表于 2015-1-9 09:55:09 | 显示全部楼层 来自: 中国广东中山
. @0 }& p  Z) _
版主能不能做成一个文件啊?本人不能这方面的,不过很想用用哦
0 J6 \  o4 Q" [% K, \* g谢谢
发表于 2015-1-9 15:12:41 | 显示全部楼层 来自: 中国辽宁本溪
就是个栏选呗,没什么
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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