QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
请大家帮忙看看这个功能能否实现.我想要的效果是在图中我画一条直线,当我点一个删除按钮然后提示让我选择一条直线,之后与这条直线相交的所有对象都删除了,不与之相交的对象保留.谢谢了
 楼主| 发表于 2009-5-27 19:39:39 | 显示全部楼层 来自: 中国江苏无锡
我只能实现与直线相交的都删除但不能指定一条直线,要是有很多条直线我就搞不定了,大家帮我想想办法
发表于 2009-5-27 21:40:54 | 显示全部楼层 来自: 中国台湾
;;; No error check6 Z* m; [. I, o  o* a! X- Q- m
;;; for test only, s* _* C; W1 w# i4 V
(defun C:Test ()* j2 w/ F) N& F: W  k
   (setq ee (entsel)
2 T% Y6 z9 N0 b5 J3 A3 T         ee (car ee)
) k1 l5 ]1 @' {        dat (entget ee)
6 @' j# Y( R. u         pa (cdr (assoc 10 dat)) ' a/ J9 t3 [9 A
         pb (cdr (assoc 11 dat))
! b' ^" H* a) T7 l$ n   )$ t9 p( c! }/ t$ s" ?
   (command "Erase" "f" pa pb "" "r" ee "")
! t# z$ \. ~8 y- C. m! V3 y)
 楼主| 发表于 2009-5-30 18:34:08 | 显示全部楼层 来自: 中国江苏无锡
我用的是VBA呀,能不能给VBA代码,详细点的,谢谢了!
发表于 2009-5-30 21:12:01 | 显示全部楼层 来自: 中国

  1. & x( t% Z6 i; I0 M+ r" E6 J
  2.     Dim E As AcadEntity, L As AcadLine, P As Variant: q1 {2 i3 S, C
  3.     On Error Resume Next, A7 }& J$ I& b% q& J. T
  4.     With ThisDrawing
    ) _/ z9 j( ~1 T
  5.         Do! G+ o; _1 Y6 P! B
  6.             .Utility.GetEntity E, P, vbCrLf & "选择直线:"
    & I: G0 |* m. o. p
  7.             If Err Then
    2 p0 s5 H$ w0 W5 `( P
  8.                 Exit Sub
    5 w! M( b# I% b1 j3 Z
  9.             ElseIf E.ObjectName = "AcDbLine" Then3 ^1 t$ g( g" V4 a/ h+ c/ E6 H
  10.                 Exit Do/ H/ A% d; ^; V( j
  11.             End If$ y% A! B% a2 \
  12.         Loop
    - M% i* M5 b( y, f. b6 A, x
  13.         Set L = E
    6 l6 w; c$ p0 [; k# x6 d
  14.         For Each E In .ModelSpace
    * Q1 i3 O2 O! a" t
  15.             P = L.IntersectWith(E, acExtendNone)' p( q, E! q6 K+ I# |! [
  16.             If UBound(P) >= 2 Then E.Delete
    " T% j5 q5 I. H% ~# e, K( R' G3 u
  17.         Next* p: Q: C) o8 m3 l+ z9 o
  18.     End With
    ) L1 m% U2 [# }
复制代码
 楼主| 发表于 2009-5-31 19:18:21 | 显示全部楼层 来自: 中国江苏无锡
版主你太厉害了,能推荐点资料吗?你是怎么学这VBA的?
' e! j5 k5 `8 J& N5 Z5 }8 T3 R非常感谢
发表于 2009-6-4 16:01:02 | 显示全部楼层 来自: 中国广东东莞
原帖由 SunVei 于 2009-5-27 21:40 发表 http://www.3dportal.cn/discuz/images/common/back.gif& C6 H4 D; j" ?7 G* K
;;; No error check0 @9 s3 @) R3 a0 y- ]7 n
;;; for test only
: Q# V. S( s9 b1 q! w) v$ o6 \(defun C:Test ()* K" Q- y0 p. p+ h( H( w
   (setq ee (entsel)
! O" y0 J0 b: x! n3 \4 l, g         ee (car ee)8 S+ {3 g! u: S; m
        dat (entget ee)
( K8 u: j6 @! b, i% }         pa (cdr (assoc 10 dat)) ) d3 o# B/ h" q# W/ X
         pb (cdr (assoc 11 dat)) * g$ a# Y6 @' l! Q8 e. ~
    ...

7 H9 ~: ]% B( J7 l8 v( F0 v1 {* l! @% @$ p" d/ r' N+ r

( X4 d" e" o0 [& T6 v9 P不错的办法,只是如果异面直线的话不也被咔嚓了?
发表于 2009-6-5 15:07:26 | 显示全部楼层 来自: 中国台湾
代码是跟着需求在走的
7 |' A+ E/ E. C& e8 h" o8 M3 p: w0 @为自己量身定做最顺手 .....
发表于 2009-7-8 10:37:41 | 显示全部楼层 来自: 中国北京
以直线两个端点为对角点的长方形为cross方式选择实体,然后在选择集判断每个实体是否跟直线相交,相交的就删除
发表于 2015-1-9 09:55:09 | 显示全部楼层 来自: 中国广东中山
. b. }8 \5 [" N( C) P) n7 T" u
版主能不能做成一个文件啊?本人不能这方面的,不过很想用用哦) }2 F. M' S7 b
谢谢
发表于 2015-1-9 15:12:41 | 显示全部楼层 来自: 中国辽宁本溪
就是个栏选呗,没什么
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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