QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
比如一个椭圆,长轴两个顶点位置已知(不水平),则需要将块插入后旋转。9 d6 I4 _9 U; F* r
InsertBlock(插入点,块名, X 轴比例,Y 轴比例,Z 轴比例, 旋转角度)中旋转角度未知,程序上怎么实现?0 |7 Z6 _5 c, k
请达人指教!多谢!
8 m: y# ~, d  J  p' G* Lbow~
发表于 2008-9-23 18:00:07 | 显示全部楼层 来自: 中国
Sub A()% p( b( k% Q9 R8 Z" g, r2 d
    Dim B As AcadBlock, I As Integer, P(2) As Double
5 G% O/ a5 u: F4 k4 ^& L    With ThisDrawing4 Y# T% b8 O  p  D
        For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块
& m0 I; H1 ~- ~& A            If B.Name = 块名称字符串 Then '找到指定的块
* G9 f. g: O$ p% @                For I = 0 To B.Count - 1 '遍历块元素
: x3 Y* W( ?. l                    If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环
# b* b8 S+ {" x" u' o+ m0 j8 _% d5 i5 b                Next  M3 t! J: y/ g! o7 }7 d+ P" V0 _
                .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)3 l6 @) b8 t9 m! Q5 I
                '根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)5 W* {5 r3 B# _9 L" ^2 Y, H
                Exit For
+ n6 v- p$ x/ K0 p  D6 U& Y0 \            End If
( p- {/ E! W8 z2 g/ w! l# E6 Q        Next) D$ x" H: Y6 R9 q5 u$ h
    End With
  z, e( s# \. LEnd Sub
发表于 2008-9-23 19:43:01 | 显示全部楼层 来自: 中国江苏无锡
复制粘贴。9 _# z6 H& _/ F% }5 ^9 I
(defun c:copy&paste ()
* G  e& h  G( Z3 z' {; f! c; p  (setq ss nil)
+ k5 r# N9 i% h6 Z0 o6 ~- D  (print "输入回车进行粘贴"), k! @0 z) e, |  W7 z. M
  (setq ss (ssget))4 s; h  v9 x/ Z, }1 v7 s7 M- @
  (if (= ss nil)) D2 e% d0 @0 M1 H6 x) b4 R
    (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))
' @7 O8 e9 Z# |5 S( P( ]! G    (progn
- m( i! |6 ?6 A( x  H% z. E         (setq D1 (getpoint "插入点:"))
" J$ f% C) t5 V8 o, W1 Q8 L9 e$ x: o' g           (if (findfile "tigerspace.dwg")
* @7 Q4 R. Y2 r7 X( l$ R* U$ D( @             (command "-wblock" "tigerspace.dwg" "Y" "" D1 ss "")
) w& V4 S7 Z! O: b& O' _" R0 ]9 @             (command "-wblock" "tigerspace.dwg" "" D1 ss "")
$ ?% ^( r! G) `8 w3 \. Z           );;结束if) O! U. [! K4 J0 V% n$ B7 `
         (command "oops")1 T! ^" E& e' D: t; P7 ~/ @
         (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))( Q7 F( |5 s$ k" E, m% _7 }
     );;结束progn" S' L9 D8 x' M. o# h4 q
  );;结束if
- Z2 |" G% o2 S2 @  u8 _) i9 n( Y# |  (princ)
4 w0 n0 a) Z$ v7 })
' k2 j; b1 K+ i' P6 g, {& Z( [$ p8 C- r- X! o, V
[ 本帖最后由 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 )

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