QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
比如一个椭圆,长轴两个顶点位置已知(不水平),则需要将块插入后旋转。
; l" c  w" t( o; |, l! X6 CInsertBlock(插入点,块名, X 轴比例,Y 轴比例,Z 轴比例, 旋转角度)中旋转角度未知,程序上怎么实现?, V, @/ @+ u( Q4 p5 @5 S. M* ~6 M
请达人指教!多谢!1 |' z9 @. |. I5 {5 P  M7 ~: Z5 I
bow~
发表于 2008-9-23 18:00:07 | 显示全部楼层 来自: 中国
Sub A()
% k7 @2 y' t3 g1 X1 F( L1 O    Dim B As AcadBlock, I As Integer, P(2) As Double8 K- b4 P& L- d( d0 \
    With ThisDrawing. b4 {2 M0 I7 i2 o1 g) m) T
        For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块
0 k7 U2 J7 v$ |4 j            If B.Name = 块名称字符串 Then '找到指定的块
2 l' H' D7 A) g3 p  Q: r                For I = 0 To B.Count - 1 '遍历块元素
  b( y6 P8 v0 U  I                    If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环
- ?  K4 u+ d  I. `3 I                Next" g) t) w* m+ T- M$ Y) E! K5 `
                .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)
- e3 Q$ p1 M4 g" M. B0 f0 `) c                '根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)$ O+ ]& }+ L4 w1 j3 h
                Exit For1 M4 P' I( c; }
            End If" ^# R  z! m7 D  L# L6 n
        Next. t' X: A1 v5 f/ V% J+ n
    End With; G+ b4 b6 b8 j" @' V
End Sub
发表于 2008-9-23 19:43:01 | 显示全部楼层 来自: 中国江苏无锡
复制粘贴。( v  g3 k9 C- ]0 V8 ~" f
(defun c:copy&paste ()
. B: U% H2 ?5 C2 Q: P8 [  (setq ss nil)
& s0 {( S6 x& f7 P$ K, Z  (print "输入回车进行粘贴")- T5 g, d! I  {- `
  (setq ss (ssget))
- v# w& Q# _. x5 D" D  (if (= ss nil)
2 ~6 F3 w2 P) A- B( k- t3 ~; J    (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))
6 r+ y8 ^6 w) X" k/ Y    (progn
) @: W+ z5 u8 O8 V         (setq D1 (getpoint "插入点:"))4 I; p- X7 _2 y0 j
           (if (findfile "tigerspace.dwg")+ q9 [# t  C, D: ^, M+ ?5 |  l
             (command "-wblock" "tigerspace.dwg" "Y" "" D1 ss "")
  K$ }, T9 M  C. A6 J             (command "-wblock" "tigerspace.dwg" "" D1 ss "")
/ n# b3 I" o1 j4 P6 v, w2 k           );;结束if
0 S6 n  f, b' Z         (command "oops")
3 L# ?" \- W. s% ^  L$ K0 V5 [2 L         (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:")); K& z  x& \& l. h' v: q
     );;结束progn% v8 y% m. _8 `; u3 I
  );;结束if
; e5 t5 _7 N9 Q) m% p  (princ)$ K1 H, u9 u" {* M# _- S) M) J
)3 C3 O3 l! V4 H+ o9 c
- S7 ^$ L, G3 l7 U; h* A* q
[ 本帖最后由 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 )

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