QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
请大家帮忙看看这个功能能否实现.我想要的效果是在图中我画一条直线,当我点一个删除按钮然后提示让我选择一条直线,之后与这条直线相交的所有对象都删除了,不与之相交的对象保留.谢谢了
 楼主| 发表于 2009-5-27 19:39:39 | 显示全部楼层 来自: 中国江苏无锡
我只能实现与直线相交的都删除但不能指定一条直线,要是有很多条直线我就搞不定了,大家帮我想想办法
发表于 2009-5-27 21:40:54 | 显示全部楼层 来自: 中国台湾
;;; No error check
, O/ X6 \  x0 d; S$ z5 C;;; for test only
+ r5 [- @+ D, Z(defun C:Test ()& k2 q6 s; c& a+ b9 s7 y4 N
   (setq ee (entsel)8 K2 F; D5 B- c, ~' d
         ee (car ee)
+ y; E* u, e) O% Z; x        dat (entget ee) / \( O( G) U$ N2 u  N
         pa (cdr (assoc 10 dat))
. m* {1 q7 M$ Y) e& }. ]" t3 P         pb (cdr (assoc 11 dat)) 6 X8 n" h/ u) U) b. b! H
   )
: e1 Z' h- o. v, \   (command "Erase" "f" pa pb "" "r" ee "")
5 N7 |1 d6 ^* W9 X/ E% e: [)
 楼主| 发表于 2009-5-30 18:34:08 | 显示全部楼层 来自: 中国江苏无锡
我用的是VBA呀,能不能给VBA代码,详细点的,谢谢了!
发表于 2009-5-30 21:12:01 | 显示全部楼层 来自: 中国
  1. & A4 |7 T1 j/ T2 B6 T8 @# e
  2.     Dim E As AcadEntity, L As AcadLine, P As Variant
    , i, P& _, n1 I7 d5 r
  3.     On Error Resume Next
    , L! p% Q5 D& l( ^1 q, y2 J3 `$ n
  4.     With ThisDrawing
    - x4 h6 f" g, J5 j( c
  5.         Do
    ; e$ y1 w1 ^' ?' p( Y. X8 B
  6.             .Utility.GetEntity E, P, vbCrLf & "选择直线:"& i5 ^7 c# n7 T& q! u; {& K
  7.             If Err Then
    3 G/ \$ K, x$ N
  8.                 Exit Sub
    2 ?3 j$ d7 y( T  z# T% C" {5 ~
  9.             ElseIf E.ObjectName = "AcDbLine" Then
    6 z- e5 E  T$ i- W$ D
  10.                 Exit Do  w: f/ T3 M# P/ ?8 j, t, j% Q2 t
  11.             End If/ P* c# j! U% X$ \0 Y2 O) r
  12.         Loop
    - R( a& G+ J( `! f
  13.         Set L = E
    1 _- g+ D- T+ f1 P1 `9 O
  14.         For Each E In .ModelSpace6 e5 [1 V) I; k, q7 o2 q# m  ?
  15.             P = L.IntersectWith(E, acExtendNone)
    " w1 k0 L% J2 c  t, g9 E
  16.             If UBound(P) >= 2 Then E.Delete
    ! x: O/ P( h, V  W+ f8 R
  17.         Next
    , X1 G6 Y$ I& S+ W7 Q9 X! Q
  18.     End With6 [; o7 V1 ^9 O2 V
复制代码
 楼主| 发表于 2009-5-31 19:18:21 | 显示全部楼层 来自: 中国江苏无锡
版主你太厉害了,能推荐点资料吗?你是怎么学这VBA的?
: ^+ W; t7 A5 `9 o* A' ^4 T非常感谢
发表于 2009-6-4 16:01:02 | 显示全部楼层 来自: 中国广东东莞
原帖由 SunVei 于 2009-5-27 21:40 发表 http://www.3dportal.cn/discuz/images/common/back.gif
# q. U9 t; r- _7 z/ W) [;;; No error check2 H( i+ V- |7 A# [6 [
;;; for test only
4 B5 z1 i: a& v$ r# e' X(defun C:Test ()
' }, |& q" [$ ?: `   (setq ee (entsel): ]( u2 _, n6 j( L
         ee (car ee)
3 z, W8 U. t+ f: u0 I        dat (entget ee)
& Z4 p# Z- m9 d5 c         pa (cdr (assoc 10 dat)) 3 |1 P& \) n6 j& P5 P0 k# H
         pb (cdr (assoc 11 dat))
9 E; [. {0 x/ b    ...
% h" s9 _3 P4 z

8 F1 |( k' g6 f: M. w# A/ i5 E! g" Q0 N1 Q. Q6 o$ c2 O
不错的办法,只是如果异面直线的话不也被咔嚓了?
发表于 2009-6-5 15:07:26 | 显示全部楼层 来自: 中国台湾
代码是跟着需求在走的
+ b6 U+ o! l8 m9 @8 P6 k为自己量身定做最顺手 .....
发表于 2009-7-8 10:37:41 | 显示全部楼层 来自: 中国北京
以直线两个端点为对角点的长方形为cross方式选择实体,然后在选择集判断每个实体是否跟直线相交,相交的就删除
发表于 2015-1-9 09:55:09 | 显示全部楼层 来自: 中国广东中山

, R7 G4 i  U6 |3 i( P3 e7 [版主能不能做成一个文件啊?本人不能这方面的,不过很想用用哦
4 ]( ^* R  `$ [9 S6 T谢谢
发表于 2015-1-9 15:12:41 | 显示全部楼层 来自: 中国辽宁本溪
就是个栏选呗,没什么
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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