QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
9天前
查看: 2826|回复: 3
收起左侧

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

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

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

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

x
比如一个椭圆,长轴两个顶点位置已知(不水平),则需要将块插入后旋转。4 M# S3 k  J$ J$ f
InsertBlock(插入点,块名, X 轴比例,Y 轴比例,Z 轴比例, 旋转角度)中旋转角度未知,程序上怎么实现?$ y/ `0 J8 S2 l$ U' l3 X) [2 n& ]
请达人指教!多谢!' \/ m* g/ y; E: ~+ w- Y
bow~
发表于 2008-9-23 18:00:07 | 显示全部楼层 来自: 中国
Sub A()
. ]0 \& Y+ E. l/ }* Z    Dim B As AcadBlock, I As Integer, P(2) As Double* o) p5 {$ J- r# U
    With ThisDrawing
* F! U2 e; @/ }; q, K5 d1 \+ [        For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块% J. w; @# ^8 N$ _% F& _
            If B.Name = 块名称字符串 Then '找到指定的块
% K* Y  a1 o/ K: U                For I = 0 To B.Count - 1 '遍历块元素
' ]" Z/ o4 j1 _5 ]' `                    If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环. O# o# N% L+ Q& Y' I
                Next$ |9 v' K8 [3 x( G
                .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint), r. v( Y) ?  q- N# N
                '根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)
: P* t8 j( V- y5 S$ X                Exit For. j* ~% {4 E# e. A. x0 Q
            End If! Y3 K: S; n- c4 V' C0 ?
        Next
4 f- B3 W* I( M6 @    End With
  i# x* V7 [& c5 v$ H% \* jEnd Sub
发表于 2008-9-23 19:43:01 | 显示全部楼层 来自: 中国江苏无锡
复制粘贴。2 y* j& w; |/ O
(defun c:copy&paste ()3 @% P: @1 R. E0 w
  (setq ss nil)
2 i9 {3 v/ @$ u* b) ~0 G: f4 f% |( |  (print "输入回车进行粘贴")8 o- _) Y* K0 b
  (setq ss (ssget))
/ U: t% l+ ?5 L% U3 N& m& D  (if (= ss nil)
2 U* A. `- g* n+ q& T5 g7 Z2 q    (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))
, S  J& H: Z8 p5 C    (progn
- ]* K5 H- E. m" e) T         (setq D1 (getpoint "插入点:"))7 I% x* q  x* U" o2 a
           (if (findfile "tigerspace.dwg")( A! ^$ Y8 _* V8 p  c
             (command "-wblock" "tigerspace.dwg" "Y" "" D1 ss "")
( m+ U& r0 s7 O2 U$ j+ h& v             (command "-wblock" "tigerspace.dwg" "" D1 ss "")1 x8 x. s) L0 l7 b" H
           );;结束if
5 @. [0 A; M4 z- I         (command "oops")" `7 G( a8 c7 r, A4 U' n! V" X
         (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))0 q0 f  R" n4 e7 [6 S% {0 b7 }
     );;结束progn4 k7 R7 c" E* ^) r" O0 E# @$ Z
  );;结束if. C; I( r! \  M
  (princ)& _, d5 u/ h' b: u/ U) }
)
" i* |" D* I2 q3 `) p8 x% O  [% f! r+ u8 Z9 ^: F  `& M8 m) {
[ 本帖最后由 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 )

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