QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
请大家帮忙看看这个功能能否实现.我想要的效果是在图中我画一条直线,当我点一个删除按钮然后提示让我选择一条直线,之后与这条直线相交的所有对象都删除了,不与之相交的对象保留.谢谢了
 楼主| 发表于 2009-5-27 19:39:39 | 显示全部楼层 来自: 中国江苏无锡
我只能实现与直线相交的都删除但不能指定一条直线,要是有很多条直线我就搞不定了,大家帮我想想办法
发表于 2009-5-27 21:40:54 | 显示全部楼层 来自: 中国台湾
;;; No error check5 n2 [8 L: S& q# _! n. l
;;; for test only
7 d- h3 E# D7 W(defun C:Test ()0 j) o& }" @9 N
   (setq ee (entsel)' U8 o. t& {, ^( L
         ee (car ee)8 @6 F2 I, y0 r$ a3 b
        dat (entget ee) / b6 i* Z- N5 N  J# v3 [; D$ V- G
         pa (cdr (assoc 10 dat)) 4 w4 t. {1 @- l* v& ^0 _8 V
         pb (cdr (assoc 11 dat)) % X. H1 m* r- Q* \' ~
   )
7 e3 t! G1 _: d2 H/ A3 I. n   (command "Erase" "f" pa pb "" "r" ee "")
0 K$ R1 q( m# q1 j6 L)
 楼主| 发表于 2009-5-30 18:34:08 | 显示全部楼层 来自: 中国江苏无锡
我用的是VBA呀,能不能给VBA代码,详细点的,谢谢了!
发表于 2009-5-30 21:12:01 | 显示全部楼层 来自: 中国
  1. 3 N- f7 w8 j# o5 r! Z: `$ y; j5 _
  2.     Dim E As AcadEntity, L As AcadLine, P As Variant0 y3 I( ?/ ]! v4 ^, a- B0 P
  3.     On Error Resume Next
    7 k7 S/ y$ u/ @, d/ r) u
  4.     With ThisDrawing- g5 Q4 [* E! C; O
  5.         Do
    + Z3 v) [; W+ @6 r9 r
  6.             .Utility.GetEntity E, P, vbCrLf & "选择直线:"
    " c, q# U1 f, |( {5 b( l4 j
  7.             If Err Then3 d, i, e  ^. G4 r; J; A
  8.                 Exit Sub  `# x) ~  T: l( t) M, Q
  9.             ElseIf E.ObjectName = "AcDbLine" Then1 H8 t4 K1 @/ s' ~2 A9 h' w9 D
  10.                 Exit Do
    ; B- f  ?. I; c9 P( x) n: n
  11.             End If
    % {, |) \# J) w$ i
  12.         Loop1 Q) B+ X( g: V8 a
  13.         Set L = E/ Y. d' @5 X. ^: G
  14.         For Each E In .ModelSpace
    ' E" s3 e" C! Y! c* w* |
  15.             P = L.IntersectWith(E, acExtendNone); j8 O% x- C+ A1 O8 b& f6 n$ P6 m
  16.             If UBound(P) >= 2 Then E.Delete, B+ n. F  C7 U% W
  17.         Next* V1 J1 Y0 w5 N6 T6 F/ k. w
  18.     End With
    2 w: o2 g# J' Y# i- B' h, t
复制代码
 楼主| 发表于 2009-5-31 19:18:21 | 显示全部楼层 来自: 中国江苏无锡
版主你太厉害了,能推荐点资料吗?你是怎么学这VBA的?
. f& X+ \4 p- c$ E非常感谢
发表于 2009-6-4 16:01:02 | 显示全部楼层 来自: 中国广东东莞
原帖由 SunVei 于 2009-5-27 21:40 发表 http://www.3dportal.cn/discuz/images/common/back.gif- `: m5 E7 p  f1 |4 U3 N
;;; No error check
% t" ?- U6 C0 L$ n) X% @- S9 t;;; for test only( l$ E( [; L" b  F9 y3 s
(defun C:Test ()
( N+ l. P) d4 l$ w   (setq ee (entsel)! b3 X+ J2 A/ Z5 W7 ]+ W, {& H( M9 m
         ee (car ee)9 O/ a& a/ q! Z! r: B
        dat (entget ee) " M' B! b7 _/ T: s, R/ A# ]5 t
         pa (cdr (assoc 10 dat)) " u1 P2 s% Y1 F- j; [& d
         pb (cdr (assoc 11 dat)) ( D, R6 A$ O" h  \
    ...

! G: I9 N3 u4 \% }" H$ ~2 A7 y9 @4 a7 ?% r* L

6 E4 s+ D) X  E5 G: M不错的办法,只是如果异面直线的话不也被咔嚓了?
发表于 2009-6-5 15:07:26 | 显示全部楼层 来自: 中国台湾
代码是跟着需求在走的6 N7 n( w: ^3 c. i, A7 K9 g
为自己量身定做最顺手 .....
发表于 2009-7-8 10:37:41 | 显示全部楼层 来自: 中国北京
以直线两个端点为对角点的长方形为cross方式选择实体,然后在选择集判断每个实体是否跟直线相交,相交的就删除
发表于 2015-1-9 09:55:09 | 显示全部楼层 来自: 中国广东中山

! _" K' {  s- B& I. E( h版主能不能做成一个文件啊?本人不能这方面的,不过很想用用哦
" ^$ f: L; N  y* O谢谢
发表于 2015-1-9 15:12:41 | 显示全部楼层 来自: 中国辽宁本溪
就是个栏选呗,没什么
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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