QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
请大家帮忙看看这个功能能否实现.我想要的效果是在图中我画一条直线,当我点一个删除按钮然后提示让我选择一条直线,之后与这条直线相交的所有对象都删除了,不与之相交的对象保留.谢谢了
 楼主| 发表于 2009-5-27 19:39:39 | 显示全部楼层 来自: 中国江苏无锡
我只能实现与直线相交的都删除但不能指定一条直线,要是有很多条直线我就搞不定了,大家帮我想想办法
发表于 2009-5-27 21:40:54 | 显示全部楼层 来自: 中国台湾
;;; No error check1 T) Q- p- s: N. ?0 p  a  e  S
;;; for test only  m  r9 p. I0 L& P. {: d' U; y5 `
(defun C:Test ()
5 `3 T, d6 w4 V1 q$ O  g   (setq ee (entsel)
; Y9 B! x3 Z& Q( Z) p         ee (car ee)1 [3 y4 o" @; |" h1 A
        dat (entget ee)
- s% ]. s2 I! ^0 h& A- [         pa (cdr (assoc 10 dat)) 6 y) r  Q2 R+ {
         pb (cdr (assoc 11 dat)) 4 Y' n5 f0 O; E. R& [
   )
( }+ [& Z3 i! o% r7 w2 h: U   (command "Erase" "f" pa pb "" "r" ee "")0 R" h9 U, P# Q, A: X; P& n. c
)
 楼主| 发表于 2009-5-30 18:34:08 | 显示全部楼层 来自: 中国江苏无锡
我用的是VBA呀,能不能给VBA代码,详细点的,谢谢了!
发表于 2009-5-30 21:12:01 | 显示全部楼层 来自: 中国
  1. 3 I! e: ]$ ~. `9 u5 b& c* I
  2.     Dim E As AcadEntity, L As AcadLine, P As Variant
    3 H6 y5 O; D0 b. R
  3.     On Error Resume Next
    $ _; a- v' |6 M! U4 |; ~
  4.     With ThisDrawing7 [0 G. H9 g. J+ v
  5.         Do
    1 Q% |  V7 o4 S, b! [2 i& {
  6.             .Utility.GetEntity E, P, vbCrLf & "选择直线:"
    ! g3 O, P+ g0 {5 Z/ a7 E6 \3 @3 {
  7.             If Err Then
    4 \( `( W8 R! V% ~! B  G6 @
  8.                 Exit Sub
    % k/ ?! W) z+ O3 n. ]" a
  9.             ElseIf E.ObjectName = "AcDbLine" Then
    ( [2 S: `* g: z
  10.                 Exit Do
    , l% }( n6 \+ {, D0 W, B* {
  11.             End If
    . m( H+ ?* \/ \+ ?, L  F! ^: o
  12.         Loop& D3 q' ^6 T/ ]* u  H0 N
  13.         Set L = E
    # L' ^5 j; b; o: @; R- T
  14.         For Each E In .ModelSpace
    " q5 p8 A3 ?5 e6 y
  15.             P = L.IntersectWith(E, acExtendNone)" ^! ]1 s6 {3 W8 C; u4 |* t8 S
  16.             If UBound(P) >= 2 Then E.Delete
    7 E' L- p& A1 s, s* r
  17.         Next
    + Q$ e+ ?& U: E; @$ ]- n
  18.     End With
    ( N+ C+ s" Y' Q) J) L
复制代码
 楼主| 发表于 2009-5-31 19:18:21 | 显示全部楼层 来自: 中国江苏无锡
版主你太厉害了,能推荐点资料吗?你是怎么学这VBA的?8 K1 T' d3 q- ?/ y# ?$ q
非常感谢
发表于 2009-6-4 16:01:02 | 显示全部楼层 来自: 中国广东东莞
原帖由 SunVei 于 2009-5-27 21:40 发表 http://www.3dportal.cn/discuz/images/common/back.gif* Y! q7 k* S% k! f
;;; No error check# q5 l, U4 k% f6 b% w8 |& g- P( ?
;;; for test only5 z6 X, q( D  H3 B* y: L
(defun C:Test (); t- A: p# I) q7 \9 q) J+ b" n
   (setq ee (entsel)
& Z4 }3 j; `0 q5 W         ee (car ee)
* P0 P" q8 L  W' t% Y! Q        dat (entget ee) 4 \5 s" Y3 O0 u% Q% b
         pa (cdr (assoc 10 dat)) # l4 Y4 k1 C6 p/ o# k
         pb (cdr (assoc 11 dat)) ' k  u- |6 q6 O- q) q$ {2 U) Z' U! q
    ...

6 o3 I+ a$ F8 \: r! y4 |6 P" I3 b8 R  c+ o
( o; G( Q5 \# }% x0 A- q1 l
不错的办法,只是如果异面直线的话不也被咔嚓了?
发表于 2009-6-5 15:07:26 | 显示全部楼层 来自: 中国台湾
代码是跟着需求在走的  U( c/ o& R, X- \& B3 z  U
为自己量身定做最顺手 .....
发表于 2009-7-8 10:37:41 | 显示全部楼层 来自: 中国北京
以直线两个端点为对角点的长方形为cross方式选择实体,然后在选择集判断每个实体是否跟直线相交,相交的就删除
发表于 2015-1-9 09:55:09 | 显示全部楼层 来自: 中国广东中山

, G  j" g( G! A+ K3 R/ n版主能不能做成一个文件啊?本人不能这方面的,不过很想用用哦
6 c5 [: s) F+ N7 D0 T5 i9 ^谢谢
发表于 2015-1-9 15:12:41 | 显示全部楼层 来自: 中国辽宁本溪
就是个栏选呗,没什么
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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