QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 2786|回复: 3
收起左侧

[已答复] 二次开发—块插入后旋转

[复制链接]
发表于 2008-9-23 16:16:31 | 显示全部楼层 |阅读模式 来自: 中国江苏南京

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

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

x
比如一个椭圆,长轴两个顶点位置已知(不水平),则需要将块插入后旋转。& l. v5 X# K0 e( t4 L6 c
InsertBlock(插入点,块名, X 轴比例,Y 轴比例,Z 轴比例, 旋转角度)中旋转角度未知,程序上怎么实现?
: _4 C# f7 Q# Q9 f: \. m请达人指教!多谢!
2 L. m( o# ~8 _bow~
发表于 2008-9-23 18:00:07 | 显示全部楼层 来自: 中国
Sub A()
6 e! \( ]1 ?, m$ Z5 U) H, n: h    Dim B As AcadBlock, I As Integer, P(2) As Double
% t% B$ C7 a! @. L/ `    With ThisDrawing9 j3 ^  I5 u! y6 Q* i
        For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块9 }3 d* H: E+ w# [$ ]4 f) Z$ e* h! r, E
            If B.Name = 块名称字符串 Then '找到指定的块0 G: l% Z2 h- D, W2 [: P( a
                For I = 0 To B.Count - 1 '遍历块元素
. ]& L, V2 p% y" A8 |- [, k6 H                    If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环
. h4 ~- N( k  I; J& C% _$ C: U4 B                Next+ `0 q/ P, d& b4 ^5 F6 j
                .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)2 x9 h: v6 [; t+ a( E
                '根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)' D* s, G! q0 Y$ a/ R
                Exit For5 k4 P5 |$ j$ J& y8 }
            End If
& |4 |% }$ F. d4 J% W        Next
( p! n8 S1 Q! t    End With  G+ q+ {" s. I+ E$ V+ f; @! H
End Sub
发表于 2008-9-23 19:43:01 | 显示全部楼层 来自: 中国江苏无锡
复制粘贴。
8 r$ D( d2 z( Z  i! x# l' C* c& w(defun c:copy&paste ()
$ o' Y  |4 x: n( b  (setq ss nil)
; l) _/ ?4 g0 Q( B7 e4 M  (print "输入回车进行粘贴")
9 w: {0 S  k; h! N# J6 I  (setq ss (ssget))
3 Z  K- A, D- I0 E  (if (= ss nil)  s! k4 W& C$ |
    (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))1 j% w0 R1 u* x8 u% T: U) B
    (progn( I0 ?1 P2 j- n. k
         (setq D1 (getpoint "插入点:"))) p/ |- j5 h6 |# ]
           (if (findfile "tigerspace.dwg")
- ^0 B) m/ {6 L/ Q7 [, X             (command "-wblock" "tigerspace.dwg" "Y" "" D1 ss "")' `, W% J( U5 r7 \0 X
             (command "-wblock" "tigerspace.dwg" "" D1 ss "")& t# C  L  M& m" W
           );;结束if" t1 D0 V- g6 N7 }) j7 S7 T# g
         (command "oops")4 T! K  a5 p& O4 K- I: v
         (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:")); C! r; h9 Y2 ^3 x7 G+ M3 Y5 b
     );;结束progn5 q+ N: }" D* y% g3 Q& ?
  );;结束if
9 \; z  x4 J$ z' h6 Z  (princ)
- B* y7 O  A- B$ Z  F$ R7 _4 o)6 T5 d2 D) S" j. A. v# W1 b+ X

8 u; I1 c/ Z5 y8 N- I- n[ 本帖最后由 www1974 于 2008-9-23 20:10 编辑 ]
 楼主| 发表于 2008-10-18 13:09:52 | 显示全部楼层 来自: 中国江苏南京

回复 3# www1974 的帖子

多谢指教!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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