QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
比如一个椭圆,长轴两个顶点位置已知(不水平),则需要将块插入后旋转。: m8 w4 ^+ @4 m9 r) ?+ `, H6 w0 m
InsertBlock(插入点,块名, X 轴比例,Y 轴比例,Z 轴比例, 旋转角度)中旋转角度未知,程序上怎么实现?" _, s) \& L* m/ M
请达人指教!多谢!9 S& a5 B( N" f" o3 x
bow~
发表于 2008-9-23 18:00:07 | 显示全部楼层 来自: 中国
Sub A()5 K& ]1 V4 S3 j) X, c8 |
    Dim B As AcadBlock, I As Integer, P(2) As Double
( ]4 y- _& J8 S9 `# _! d2 _    With ThisDrawing$ I" P6 `, x+ E: }2 F0 j
        For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块% X; Z/ ]% a$ d& I% j
            If B.Name = 块名称字符串 Then '找到指定的块* D7 _- l) d' H3 L6 @/ Q2 ~0 U) C
                For I = 0 To B.Count - 1 '遍历块元素1 S) R  V0 \' B. R# w, B
                    If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环
0 B5 N) p( k: D8 h# H                Next
+ N4 E: ]1 K# t& ^5 p% V2 @  G                .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)7 W, U1 L( |& t
                '根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)
! Q) Q+ i0 w- c                Exit For
$ m! {# }0 M( E* i5 h9 G4 ~) }; A* @+ I, }            End If
: g6 Q2 }2 t0 {2 @" Z' D: t  d        Next
6 V  p# \! z0 A7 @5 |; q    End With& n5 H' B0 D& Q4 w- A& ]7 H' b4 _
End Sub
发表于 2008-9-23 19:43:01 | 显示全部楼层 来自: 中国江苏无锡
复制粘贴。) X, [) A1 i: d! x1 b$ f* A
(defun c:copy&paste ()* ^* U. P6 ?$ i" }' G: F4 {4 K
  (setq ss nil)
: N  @) S, e! e  (print "输入回车进行粘贴")
" x1 g, ]0 B7 G9 p* ?6 b. p8 M* g  (setq ss (ssget)). I! g& \% S) f" F# A7 {
  (if (= ss nil)$ f1 b# }+ g& i' s9 ]
    (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))9 h( I) |  ^" l& I2 {6 G& K) S# A
    (progn- M1 ?' U9 \9 N& y7 l. J
         (setq D1 (getpoint "插入点:"))
& r* h! O- Q0 y& _- s5 K; E           (if (findfile "tigerspace.dwg")
( ?1 L0 Q' [, _+ R5 |             (command "-wblock" "tigerspace.dwg" "Y" "" D1 ss "")
9 \$ i/ x( G1 P3 \5 ]7 M! i             (command "-wblock" "tigerspace.dwg" "" D1 ss "")! M9 z+ c" d* ~1 j% }6 A7 N
           );;结束if( a  ~- U( E, B$ B" p
         (command "oops")
6 q6 h8 z* Z- ?, `8 d$ n         (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))
" `% U# \8 t0 [0 g; z  [% d- O) c     );;结束progn
0 H2 {+ i8 i6 C1 v" g  );;结束if4 ]+ K9 U! T5 P( F& ?$ D
  (princ)
8 {$ S/ V! j9 z' O+ e/ T)
" u$ y6 `  U  q, t$ f+ j( [0 k& a' k3 R/ @0 ]+ c( L- ]
[ 本帖最后由 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 )

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