QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 4700|回复: 10
收起左侧

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

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

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

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

x
请大家帮忙看看这个功能能否实现.我想要的效果是在图中我画一条直线,当我点一个删除按钮然后提示让我选择一条直线,之后与这条直线相交的所有对象都删除了,不与之相交的对象保留.谢谢了
 楼主| 发表于 2009-5-27 19:39:39 | 显示全部楼层 来自: 中国江苏无锡
我只能实现与直线相交的都删除但不能指定一条直线,要是有很多条直线我就搞不定了,大家帮我想想办法
发表于 2009-5-27 21:40:54 | 显示全部楼层 来自: 中国台湾
;;; No error check3 i0 I# @+ }% f$ u7 d2 p
;;; for test only4 }: W, ^* \$ I: {# X, @( x
(defun C:Test ()
7 F4 _. B3 k* Q4 }# v   (setq ee (entsel)* s/ Q+ }0 V3 W1 {
         ee (car ee)
- i# {( V* F& |( I+ X' \! ?7 ~" W        dat (entget ee)
: {1 L$ b+ T1 T* B3 F$ y/ ^         pa (cdr (assoc 10 dat)) : T7 h! u, m6 ]( k/ v
         pb (cdr (assoc 11 dat)) 6 `8 T. ^7 G0 c: K
   )* T5 L8 n; {' A  g% Z; m6 ^  ]
   (command "Erase" "f" pa pb "" "r" ee "")+ N- G4 Q% M- G- ]% [
)
 楼主| 发表于 2009-5-30 18:34:08 | 显示全部楼层 来自: 中国江苏无锡
我用的是VBA呀,能不能给VBA代码,详细点的,谢谢了!
发表于 2009-5-30 21:12:01 | 显示全部楼层 来自: 中国

  1. + t& K" p" @; f, Z
  2.     Dim E As AcadEntity, L As AcadLine, P As Variant
    9 @0 F2 i3 Y5 h) ^- H8 T. y
  3.     On Error Resume Next
    * A) `0 R" w2 {
  4.     With ThisDrawing  H- D* Y+ V. y; m5 z6 U3 T+ L1 E
  5.         Do+ u; W! G( v8 I& S. H' b
  6.             .Utility.GetEntity E, P, vbCrLf & "选择直线:"9 S9 E! n- m3 X
  7.             If Err Then
    7 Q) V! W! g: F+ ?6 K3 S9 I
  8.                 Exit Sub
    8 m( K- w& M) v0 f% y. B# m; T$ I
  9.             ElseIf E.ObjectName = "AcDbLine" Then  I, S7 w3 N1 \2 f6 N4 D, h2 z
  10.                 Exit Do
    # v" q4 v7 b8 M4 h: F+ P
  11.             End If
    2 z( ~" w- \; r2 }" d; o
  12.         Loop
    2 o! p; ^7 p* E* M6 D$ w
  13.         Set L = E* o3 s, Q/ z) q3 o
  14.         For Each E In .ModelSpace
    5 _8 b' s  [( e, {0 @
  15.             P = L.IntersectWith(E, acExtendNone)
    6 _! j8 ]& |! b; f
  16.             If UBound(P) >= 2 Then E.Delete
    8 k6 O) ~$ ^. k7 J5 \, {
  17.         Next4 v( P: X/ ?- x, A' [6 x
  18.     End With- P2 Y' e$ i, T% ]( {% v3 ]6 L
复制代码
 楼主| 发表于 2009-5-31 19:18:21 | 显示全部楼层 来自: 中国江苏无锡
版主你太厉害了,能推荐点资料吗?你是怎么学这VBA的?# r0 K  t* }; ]9 j- O0 H2 B) u( C  P
非常感谢
发表于 2009-6-4 16:01:02 | 显示全部楼层 来自: 中国广东东莞
原帖由 SunVei 于 2009-5-27 21:40 发表 http://www.3dportal.cn/discuz/images/common/back.gif+ D! w7 j, @+ Z5 P6 H5 e
;;; No error check! N( g( x" j5 W; d$ j* N. x
;;; for test only/ T9 ~8 U/ F0 {9 @
(defun C:Test ()
9 q  p" |* o: D+ L% \6 |. K   (setq ee (entsel)
: k; L7 [* }/ G- b+ _% r         ee (car ee)
" l" B  A) m% {  C& v: p8 e        dat (entget ee) % \0 D- J2 W5 d% ]2 F- c& [
         pa (cdr (assoc 10 dat)) ; V2 b, Z' U' A& `( U3 ]
         pb (cdr (assoc 11 dat)) 3 m* e# w* l9 ~+ \
    ...

$ V0 Y% T/ G' v
3 m* s: L1 F/ i; @" F, _" C/ ^3 t, H2 A
不错的办法,只是如果异面直线的话不也被咔嚓了?
发表于 2009-6-5 15:07:26 | 显示全部楼层 来自: 中国台湾
代码是跟着需求在走的
% b! E/ G8 K; ?% C2 Y2 _为自己量身定做最顺手 .....
发表于 2009-7-8 10:37:41 | 显示全部楼层 来自: 中国北京
以直线两个端点为对角点的长方形为cross方式选择实体,然后在选择集判断每个实体是否跟直线相交,相交的就删除
发表于 2015-1-9 09:55:09 | 显示全部楼层 来自: 中国广东中山

, t- {! Y7 `) k$ p; r* w/ f版主能不能做成一个文件啊?本人不能这方面的,不过很想用用哦1 P% A9 ^4 ?) ^# `+ {3 U) v
谢谢
发表于 2015-1-9 15:12:41 | 显示全部楼层 来自: 中国辽宁本溪
就是个栏选呗,没什么
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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