QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
10天前
查看: 2827|回复: 3
收起左侧

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

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

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

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

x
比如一个椭圆,长轴两个顶点位置已知(不水平),则需要将块插入后旋转。
) |8 A4 V; J0 T- v" E) E  JInsertBlock(插入点,块名, X 轴比例,Y 轴比例,Z 轴比例, 旋转角度)中旋转角度未知,程序上怎么实现?
  l' ~. r2 y  k0 Y4 t请达人指教!多谢!% [* w4 j7 k" y6 r7 _( g# m
bow~
发表于 2008-9-23 18:00:07 | 显示全部楼层 来自: 中国
Sub A(); X4 V- J" O  ]* n
    Dim B As AcadBlock, I As Integer, P(2) As Double; J. y- O$ D6 a0 V9 w8 G) m
    With ThisDrawing/ j8 z6 G4 h7 b( W9 T# M* Y
        For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块
" V4 ?$ g/ B8 T0 C( f            If B.Name = 块名称字符串 Then '找到指定的块
" b9 [  [  r3 _                For I = 0 To B.Count - 1 '遍历块元素; L9 K5 Z1 A- U7 F" E
                    If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环: H8 C' A/ D; ?; a
                Next
7 H- @* i& s5 s( e: L$ k                .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)
+ x; x5 A/ e" C- ?8 }                '根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)
& }8 `# Q) E; Y! N; |8 E; D9 R: u                Exit For) q  P/ J) U# m9 r7 o( I3 H
            End If5 l& U; L( ~+ \; i2 Q0 z7 p, E1 ~6 u
        Next
- y7 C3 [9 g: l    End With
9 C% o5 i/ ?* h+ M( Z9 E) c/ \End Sub
发表于 2008-9-23 19:43:01 | 显示全部楼层 来自: 中国江苏无锡
复制粘贴。- q. p- v! Z1 a2 I6 D2 q3 {* x
(defun c:copy&paste ()
' n) e" `6 C! z. K  (setq ss nil)# [- C9 e4 `/ W
  (print "输入回车进行粘贴")9 _5 c+ P. s5 y% H. G# |
  (setq ss (ssget))
: F6 s* W! u( v: z! S3 Y  \  (if (= ss nil)
3 M0 Z$ N9 X% f    (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))1 W# O, V9 a5 u, s# F; J7 W  N
    (progn) Y& @+ c1 S9 f3 F
         (setq D1 (getpoint "插入点:"))
3 f, ]" t3 ?4 E! Z% k2 j           (if (findfile "tigerspace.dwg")& h3 ?- Y9 N, ^! B$ P5 k& s
             (command "-wblock" "tigerspace.dwg" "Y" "" D1 ss "")$ u' \# b- H) C
             (command "-wblock" "tigerspace.dwg" "" D1 ss "")( v' W3 d& k& V5 l" D; {! |' e
           );;结束if& O5 f9 f+ ?0 t, o4 ~  {% L; {
         (command "oops")
) b) ]7 t% f+ N; L7 J$ v         (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))
( r& d4 r4 K7 c* l2 z: L' a6 i     );;结束progn
" T' z2 U- I: ]3 u  );;结束if6 B( n! V  R9 f" Z" ]9 U
  (princ)7 q8 l5 g5 F# r  z4 }' F2 Y% S
)" H* M9 }+ }% c9 V
3 W+ B9 Q5 q( Q; n' j& ^% j1 r
[ 本帖最后由 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 )

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