QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
请大家帮忙看看这个功能能否实现.我想要的效果是在图中我画一条直线,当我点一个删除按钮然后提示让我选择一条直线,之后与这条直线相交的所有对象都删除了,不与之相交的对象保留.谢谢了
 楼主| 发表于 2009-5-27 19:39:39 | 显示全部楼层 来自: 中国江苏无锡
我只能实现与直线相交的都删除但不能指定一条直线,要是有很多条直线我就搞不定了,大家帮我想想办法
发表于 2009-5-27 21:40:54 | 显示全部楼层 来自: 中国台湾
;;; No error check- T  L1 I: E" S) i* n8 _/ ^' L5 E& B
;;; for test only/ I$ E& O5 I4 ^# e5 L' v7 o
(defun C:Test ()/ A$ f* n0 H8 T; g& C" i, ^4 T# G
   (setq ee (entsel)8 Y6 X3 h0 _  K/ G7 x
         ee (car ee)
6 E! Q- R5 R3 n# u) q        dat (entget ee)
1 N1 {" D2 C" [# P- Q9 b         pa (cdr (assoc 10 dat))
0 l5 H: b4 L- I/ L, K) x& V         pb (cdr (assoc 11 dat)) ( D( \. \' W4 v1 c( Y( J: J$ N
   )
$ V( N7 |# ]- G) k" p# E   (command "Erase" "f" pa pb "" "r" ee "")) P; A" k9 Q0 y( ~
)
 楼主| 发表于 2009-5-30 18:34:08 | 显示全部楼层 来自: 中国江苏无锡
我用的是VBA呀,能不能给VBA代码,详细点的,谢谢了!
发表于 2009-5-30 21:12:01 | 显示全部楼层 来自: 中国

  1. 7 k' K" P' ~0 U2 ]" z
  2.     Dim E As AcadEntity, L As AcadLine, P As Variant1 A  _% p5 x. O% X  F
  3.     On Error Resume Next: V9 D0 G2 u- n/ d" i3 I
  4.     With ThisDrawing
      o; I6 n9 D9 [) Z& Z; d
  5.         Do
    . o4 J4 B6 I8 u9 ?* Z5 ]* @% D
  6.             .Utility.GetEntity E, P, vbCrLf & "选择直线:"
    & Y! Z1 V% g0 h) N% v5 e$ l
  7.             If Err Then* a! h& X' H0 A' R" R2 d6 N# x
  8.                 Exit Sub! D$ |7 H. L" r& {3 c
  9.             ElseIf E.ObjectName = "AcDbLine" Then
    7 M8 ~1 a# N* p
  10.                 Exit Do$ h" Z* w* }  K* o% [
  11.             End If
    & |0 S/ }# E" U+ |
  12.         Loop
    ; P; a% h5 E$ x5 Q- i: F7 X
  13.         Set L = E& g1 K$ J0 {4 M2 N9 O4 O
  14.         For Each E In .ModelSpace1 N$ Y6 ]6 w9 j# X- j2 j5 @2 h
  15.             P = L.IntersectWith(E, acExtendNone)
    4 S) [4 E( d: U, S
  16.             If UBound(P) >= 2 Then E.Delete; [* G$ h( N& f9 \  V: ^
  17.         Next. ]6 x8 h, v# V( T" @
  18.     End With
    . Y( u! f% |- ?8 |% B1 ^9 ~+ V
复制代码
 楼主| 发表于 2009-5-31 19:18:21 | 显示全部楼层 来自: 中国江苏无锡
版主你太厉害了,能推荐点资料吗?你是怎么学这VBA的?
. G" J4 O8 `! Q9 \0 E! u非常感谢
发表于 2009-6-4 16:01:02 | 显示全部楼层 来自: 中国广东东莞
原帖由 SunVei 于 2009-5-27 21:40 发表 http://www.3dportal.cn/discuz/images/common/back.gif
* H; E6 v! [, Q# O2 i5 O6 ];;; No error check
5 T* E. _3 `1 D0 ^2 t- J( ^;;; for test only
$ J4 r' }1 @5 _  @* T9 ~4 ^(defun C:Test ()  N8 G! Z9 H3 Y0 \+ q
   (setq ee (entsel)
9 A9 V# Z! K/ E4 I. i         ee (car ee)
2 T* d; c# G5 Z3 a0 d        dat (entget ee)
& e0 J& q: d; A1 o4 R$ C         pa (cdr (assoc 10 dat))
! s0 ~7 ^4 @# s+ I! _         pb (cdr (assoc 11 dat)) ) W- V# R( q1 Z0 j
    ...

8 ~1 W1 u8 U, ?( d* Q
5 A( \8 x: V, Q$ N- c; L- S2 J  I' q8 x  b( A
不错的办法,只是如果异面直线的话不也被咔嚓了?
发表于 2009-6-5 15:07:26 | 显示全部楼层 来自: 中国台湾
代码是跟着需求在走的" u9 ~3 E' D! t* |8 Y: j
为自己量身定做最顺手 .....
发表于 2009-7-8 10:37:41 | 显示全部楼层 来自: 中国北京
以直线两个端点为对角点的长方形为cross方式选择实体,然后在选择集判断每个实体是否跟直线相交,相交的就删除
发表于 2015-1-9 09:55:09 | 显示全部楼层 来自: 中国广东中山

3 }0 ]4 o; x& K  w& @版主能不能做成一个文件啊?本人不能这方面的,不过很想用用哦" w4 i( Z) G! {# x7 G, c% i/ O
谢谢
发表于 2015-1-9 15:12:41 | 显示全部楼层 来自: 中国辽宁本溪
就是个栏选呗,没什么
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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