QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
请大家帮忙看看这个功能能否实现.我想要的效果是在图中我画一条直线,当我点一个删除按钮然后提示让我选择一条直线,之后与这条直线相交的所有对象都删除了,不与之相交的对象保留.谢谢了
 楼主| 发表于 2009-5-27 19:39:39 | 显示全部楼层 来自: 中国江苏无锡
我只能实现与直线相交的都删除但不能指定一条直线,要是有很多条直线我就搞不定了,大家帮我想想办法
发表于 2009-5-27 21:40:54 | 显示全部楼层 来自: 中国台湾
;;; No error check, H0 [1 }9 E( k7 h" c
;;; for test only
2 u" b& c: v0 ^' i7 Z) h* j5 r1 x* u(defun C:Test ()+ ^# ]8 }5 P$ y3 d/ ^3 T; e3 m
   (setq ee (entsel)  d5 c- v1 i, y. G
         ee (car ee)7 ?& y3 m( X2 s) r
        dat (entget ee) 5 @( Z2 A# c+ J- Q$ l
         pa (cdr (assoc 10 dat))
  |$ f& R* y6 Z9 Z         pb (cdr (assoc 11 dat)) 0 B) L3 z$ s! N, P: p$ M. X* Z
   )
# S5 r4 Y  R7 [/ \& a, x; a: Y7 t  R   (command "Erase" "f" pa pb "" "r" ee ""): e# |6 g' t4 x" G" N
)
 楼主| 发表于 2009-5-30 18:34:08 | 显示全部楼层 来自: 中国江苏无锡
我用的是VBA呀,能不能给VBA代码,详细点的,谢谢了!
发表于 2009-5-30 21:12:01 | 显示全部楼层 来自: 中国
  1. : t- G% m2 N* |& |& c/ ~
  2.     Dim E As AcadEntity, L As AcadLine, P As Variant
    ( ?, ?. Z" n% h" ]2 w
  3.     On Error Resume Next5 l+ b% p8 J; |
  4.     With ThisDrawing
    5 g* a- q; E% Q, B
  5.         Do2 z5 P+ I# _# m0 S( ]" B
  6.             .Utility.GetEntity E, P, vbCrLf & "选择直线:") Y/ T* w  w7 x. E8 \
  7.             If Err Then& `% Q  c0 M1 r6 Q- ]
  8.                 Exit Sub
    & e- G; a$ D! T4 `4 x9 _
  9.             ElseIf E.ObjectName = "AcDbLine" Then
    * Z+ m# }) }3 N- d  q- @& W- q5 I6 p* B
  10.                 Exit Do
    . S  |, q; i) u
  11.             End If3 G0 Z/ t/ m1 e0 x  j3 ?- Y8 N* h
  12.         Loop
    & X2 z  u- c* R1 L( t- i
  13.         Set L = E
    1 j+ ~" t$ N1 c1 b
  14.         For Each E In .ModelSpace* G, T$ T8 S, N/ b9 |6 [
  15.             P = L.IntersectWith(E, acExtendNone)
    % V1 ~5 D7 r+ ^2 ]1 ^: T& E0 g
  16.             If UBound(P) >= 2 Then E.Delete
    3 U$ b" Y5 U0 l
  17.         Next
    , M4 L. O6 F  P8 }8 w
  18.     End With0 N# v2 R6 B% i. `& I
复制代码
 楼主| 发表于 2009-5-31 19:18:21 | 显示全部楼层 来自: 中国江苏无锡
版主你太厉害了,能推荐点资料吗?你是怎么学这VBA的?
( Q& I( p% ?  }% d4 r0 a- s非常感谢
发表于 2009-6-4 16:01:02 | 显示全部楼层 来自: 中国广东东莞
原帖由 SunVei 于 2009-5-27 21:40 发表 http://www.3dportal.cn/discuz/images/common/back.gif& H1 S: [; y0 |; V* _" w4 [6 k
;;; No error check! L8 P1 ^+ F$ [! e. w, h- H6 c
;;; for test only
7 g! T* I8 f. j( c$ t) r9 P8 x0 e(defun C:Test ()
- U8 x1 ?4 t# i   (setq ee (entsel)" e" {# w+ M# l
         ee (car ee)
8 t$ W8 h; f2 X% [1 v8 A. M  H        dat (entget ee)
7 Y; P, R! h# f  v0 a( r         pa (cdr (assoc 10 dat)) 8 C  @$ J+ }$ _& q: u
         pb (cdr (assoc 11 dat))
4 R& c0 f, Y8 ^, ?    ...
& Z' g0 f& h1 h, q, X
# O' {7 R' p: d: f  t

* E- O/ C# P& ~: i* ?8 O) W! W不错的办法,只是如果异面直线的话不也被咔嚓了?
发表于 2009-6-5 15:07:26 | 显示全部楼层 来自: 中国台湾
代码是跟着需求在走的( h- D1 {- y0 e/ D
为自己量身定做最顺手 .....
发表于 2009-7-8 10:37:41 | 显示全部楼层 来自: 中国北京
以直线两个端点为对角点的长方形为cross方式选择实体,然后在选择集判断每个实体是否跟直线相交,相交的就删除
发表于 2015-1-9 09:55:09 | 显示全部楼层 来自: 中国广东中山

0 k0 V1 U% R6 S/ b9 t- A* X版主能不能做成一个文件啊?本人不能这方面的,不过很想用用哦
: C; F* J" p3 ^7 a% \谢谢
发表于 2015-1-9 15:12:41 | 显示全部楼层 来自: 中国辽宁本溪
就是个栏选呗,没什么
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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