QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
11天前
查看: 2773|回复: 3
收起左侧

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

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

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

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

x
比如一个椭圆,长轴两个顶点位置已知(不水平),则需要将块插入后旋转。& l+ h% k+ ]6 O% ^' [; ?! m
InsertBlock(插入点,块名, X 轴比例,Y 轴比例,Z 轴比例, 旋转角度)中旋转角度未知,程序上怎么实现?
" @! k9 @+ O* J4 a$ @' I' f& l$ }请达人指教!多谢!$ m0 |: U( G/ [0 R, V
bow~
发表于 2008-9-23 18:00:07 | 显示全部楼层 来自: 中国
Sub A()
) G1 P$ j7 J2 |2 f) S    Dim B As AcadBlock, I As Integer, P(2) As Double2 ^8 M7 ]9 L- a' U2 H3 j
    With ThisDrawing
5 F9 k9 C, p+ v& h        For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块& M8 {% _4 e: a' X* P
            If B.Name = 块名称字符串 Then '找到指定的块' E6 F+ X7 R( w9 b! c! M, o
                For I = 0 To B.Count - 1 '遍历块元素1 O3 j# v$ x- d3 v. a* Q! X
                    If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环8 m6 y# L# a6 S6 }" r: ]6 A
                Next% }9 f% P' x' W% M' u6 k7 n& I
                .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)
! |; B1 U& j; D6 I9 Z8 k9 T                '根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)+ ]  m4 T  A" l3 J" `
                Exit For
1 ], W8 p$ w, W3 t            End If) C* ^% p: N& R8 r3 s1 M9 b
        Next2 t3 b9 r) g( S; l2 r
    End With
) M! }9 `9 k4 P# B4 b# I4 oEnd Sub
发表于 2008-9-23 19:43:01 | 显示全部楼层 来自: 中国江苏无锡
复制粘贴。  u( @" f* A$ h" }- k% u3 T
(defun c:copy&paste ()
' K' z& H. {- r+ p7 o, d  (setq ss nil)
" E; Q1 p: k: p, B% y) \+ e! g) E% @* D  (print "输入回车进行粘贴")
0 T& F4 ~, D- }6 {# j  (setq ss (ssget))$ Q6 @5 Y! u% A( ^) p
  (if (= ss nil)5 F! U8 n) i% Z) x
    (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))
" W3 D1 b" c3 N    (progn
8 K8 x& ~5 t  \" \! T         (setq D1 (getpoint "插入点:"))) u% _" o" y" b6 u: G& K. ]- f
           (if (findfile "tigerspace.dwg")
- |8 s3 N% O: ^! Y             (command "-wblock" "tigerspace.dwg" "Y" "" D1 ss "")
: h, M& l. y) C3 O$ C, P             (command "-wblock" "tigerspace.dwg" "" D1 ss "")
  i% H( n/ N2 ]: R* r  A           );;结束if5 d3 y1 ?: [; I! C: w  Q% v4 H, X
         (command "oops")4 U( I' m$ e: E3 k! `/ l5 {
         (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))
" y& q, G" @2 e6 O, g     );;结束progn$ M. J: r/ e$ L
  );;结束if
8 ?/ W$ p5 i( M* s! V& c  (princ)
5 D4 B2 e6 F+ m9 S$ l! m1 ])
8 n8 {# Z) i% a1 w  g, K
8 q3 J8 N$ ^' L8 R. Y, ~( o[ 本帖最后由 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 )

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