QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
比如一个椭圆,长轴两个顶点位置已知(不水平),则需要将块插入后旋转。, R9 H2 P6 p6 j$ ~
InsertBlock(插入点,块名, X 轴比例,Y 轴比例,Z 轴比例, 旋转角度)中旋转角度未知,程序上怎么实现?+ G" o2 p& H* M; c6 H
请达人指教!多谢!. @* W& M% Y& L, Y% }
bow~
发表于 2008-9-23 18:00:07 | 显示全部楼层 来自: 中国
Sub A()
4 u0 x3 I6 ]1 N5 m3 C    Dim B As AcadBlock, I As Integer, P(2) As Double
: ]( I! G5 i* v/ Y# {    With ThisDrawing
. w" s' ]6 S) g8 v. L# U9 A: P        For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块4 d% Y) N/ h" z( X/ |/ m! ]  d
            If B.Name = 块名称字符串 Then '找到指定的块5 V# w: [% M1 U# F
                For I = 0 To B.Count - 1 '遍历块元素
" m6 u/ Z7 j: _7 w                    If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环; p1 a% U5 z+ U
                Next; m5 S+ V1 {) B" a! ]1 t
                .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)( c( H  z$ w- ?: Q' f
                '根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)( I8 Y6 ^& p2 A) o/ Q
                Exit For
: m2 X. K( t) N            End If
! \1 n6 P- y! f. M) G1 M        Next( A- a( \: e$ S0 p& A8 Q) }7 l
    End With
9 F, I2 R  e' E7 b7 S! I) o% w9 }End Sub
发表于 2008-9-23 19:43:01 | 显示全部楼层 来自: 中国江苏无锡
复制粘贴。
4 ]/ ?1 S$ `! f+ a1 ?0 s(defun c:copy&paste ()
6 n! }" _' D- O1 m  (setq ss nil); }% F4 l4 d8 d0 J0 O
  (print "输入回车进行粘贴")
( L( ]: v) z6 [1 N  (setq ss (ssget))
" g, s9 s* a' ?6 E# m  (if (= ss nil)
; \6 R) E; Y% h& K/ `. i& c    (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))
9 {# b! q( K: ^5 k) f3 D    (progn
4 p( d2 J4 _1 q! K) H8 Q/ s         (setq D1 (getpoint "插入点:"))
' b1 l9 s( y, {" Q' \* A! _           (if (findfile "tigerspace.dwg")( [" z1 C6 w. _% ~$ C) M* [' `
             (command "-wblock" "tigerspace.dwg" "Y" "" D1 ss "")0 V  Q1 \# t+ c6 R1 z/ C9 G
             (command "-wblock" "tigerspace.dwg" "" D1 ss "")( \8 L" h5 b9 N* Q* |$ ?
           );;结束if  q: @6 F9 b  o1 m, q  f
         (command "oops")* ?- j8 }8 s* G# q0 U
         (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))2 ^" L, e. P) z; I, v
     );;结束progn$ g/ k. e) X* o; U1 D
  );;结束if+ k/ ?" e4 H% ^2 X" Y5 W, n
  (princ)6 Q2 @' Q5 H9 l+ e/ z
)
% O2 S- C# d& X7 j  n- V/ B# N$ y1 f% G0 K! p% F  b
[ 本帖最后由 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 )

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