QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
请大家帮忙看看这个功能能否实现.我想要的效果是在图中我画一条直线,当我点一个删除按钮然后提示让我选择一条直线,之后与这条直线相交的所有对象都删除了,不与之相交的对象保留.谢谢了
 楼主| 发表于 2009-5-27 19:39:39 | 显示全部楼层 来自: 中国江苏无锡
我只能实现与直线相交的都删除但不能指定一条直线,要是有很多条直线我就搞不定了,大家帮我想想办法
发表于 2009-5-27 21:40:54 | 显示全部楼层 来自: 中国台湾
;;; No error check
2 \% o- S/ M% v;;; for test only) B$ [) C2 [, @; K
(defun C:Test ()2 o3 T4 s- K3 W/ Z7 z; X) N3 U
   (setq ee (entsel)+ L4 J) L5 D  Z! J
         ee (car ee)
. e6 C& z% t: Z8 ^* M        dat (entget ee) : B$ Z/ O) o1 I" r& o3 P. h1 S
         pa (cdr (assoc 10 dat)) 4 J  E/ t' b' X6 k5 Q( u
         pb (cdr (assoc 11 dat))
- ?3 x5 i; @/ Q8 i! ^0 |- |   )
8 S3 H3 V0 G7 F2 s   (command "Erase" "f" pa pb "" "r" ee "")4 ^3 D3 Z) b$ {. ~" w$ P
)
 楼主| 发表于 2009-5-30 18:34:08 | 显示全部楼层 来自: 中国江苏无锡
我用的是VBA呀,能不能给VBA代码,详细点的,谢谢了!
发表于 2009-5-30 21:12:01 | 显示全部楼层 来自: 中国

  1.   `1 I2 R$ v4 s
  2.     Dim E As AcadEntity, L As AcadLine, P As Variant0 C; o0 t' n: f/ p! I
  3.     On Error Resume Next
    % H/ R1 t* D2 D1 z6 N0 }6 \, m
  4.     With ThisDrawing
    0 N0 n  l/ h- ~3 F# s0 h& @
  5.         Do
    ; \9 C* U* Z0 a8 q
  6.             .Utility.GetEntity E, P, vbCrLf & "选择直线:"
    3 w# [7 h9 Q) R+ F; I; I  j
  7.             If Err Then  S- R9 ^) F# C# V, m
  8.                 Exit Sub
    6 }" Z1 t! Q( M% }
  9.             ElseIf E.ObjectName = "AcDbLine" Then% n6 N. a. J5 {; R8 \0 E# L0 C
  10.                 Exit Do
    3 i# l; U# A' t2 s2 p0 Y, p: A/ h
  11.             End If5 m5 v- D* w* w" \5 _" c$ E3 W
  12.         Loop$ N0 d& N: n4 e3 r' T. ]
  13.         Set L = E
    1 \4 D9 z1 R4 O7 x& t1 S" Q
  14.         For Each E In .ModelSpace
    ' L1 }8 c  R' ~' U) G
  15.             P = L.IntersectWith(E, acExtendNone)3 c* g! B# y  Q1 o* ]- k
  16.             If UBound(P) >= 2 Then E.Delete
    ( c( M, t' q# k
  17.         Next
    1 L) D! S9 ?# ]. J
  18.     End With
    4 r" s+ @9 L7 D: \' }; S
复制代码
 楼主| 发表于 2009-5-31 19:18:21 | 显示全部楼层 来自: 中国江苏无锡
版主你太厉害了,能推荐点资料吗?你是怎么学这VBA的?) T( A8 r7 f5 u3 j
非常感谢
发表于 2009-6-4 16:01:02 | 显示全部楼层 来自: 中国广东东莞
原帖由 SunVei 于 2009-5-27 21:40 发表 http://www.3dportal.cn/discuz/images/common/back.gif
: Y7 X$ [1 T% W" V  I' \* p;;; No error check+ h6 s3 Q6 @7 @' M, U  |; k2 ?
;;; for test only( G% u/ |  a8 w7 P% j" m- p( J) q
(defun C:Test ()
$ W( P: [) C- {$ Q5 i2 @5 j: |   (setq ee (entsel)
3 Y) y4 f; L; z* |         ee (car ee)
8 y4 K9 G! N" o$ `6 F        dat (entget ee) + I# Z! F  q1 E! O% @; l" _
         pa (cdr (assoc 10 dat))
. j/ M; p* ]# q5 q2 X1 C         pb (cdr (assoc 11 dat)) - }/ K* b1 A) L4 k4 K/ i9 K
    ...

0 U9 U% n2 P: f6 V' y
  D# v4 K" f2 ^1 u
# H' C, L- S7 i3 L不错的办法,只是如果异面直线的话不也被咔嚓了?
发表于 2009-6-5 15:07:26 | 显示全部楼层 来自: 中国台湾
代码是跟着需求在走的! ?$ C2 ?: o( ], V4 ~
为自己量身定做最顺手 .....
发表于 2009-7-8 10:37:41 | 显示全部楼层 来自: 中国北京
以直线两个端点为对角点的长方形为cross方式选择实体,然后在选择集判断每个实体是否跟直线相交,相交的就删除
发表于 2015-1-9 09:55:09 | 显示全部楼层 来自: 中国广东中山
! l4 g+ R% C' I, ^
版主能不能做成一个文件啊?本人不能这方面的,不过很想用用哦
* L8 `% Y, A( c* T; j, F谢谢
发表于 2015-1-9 15:12:41 | 显示全部楼层 来自: 中国辽宁本溪
就是个栏选呗,没什么
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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