QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
比如一个椭圆,长轴两个顶点位置已知(不水平),则需要将块插入后旋转。
3 c$ T7 K, F' e' M, C; C5 @InsertBlock(插入点,块名, X 轴比例,Y 轴比例,Z 轴比例, 旋转角度)中旋转角度未知,程序上怎么实现?
& \$ S& ^% r, E$ w* K9 M, B请达人指教!多谢!
3 \% U; o' O+ Ebow~
发表于 2008-9-23 18:00:07 | 显示全部楼层 来自: 中国
Sub A()- S. n! H5 |1 y6 @. D) z3 ~6 E+ r
    Dim B As AcadBlock, I As Integer, P(2) As Double7 V. g, h$ P& u' s- @
    With ThisDrawing6 y8 i& G1 W- c$ f
        For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块
% G- z- [0 t2 X% [            If B.Name = 块名称字符串 Then '找到指定的块! C6 E$ q8 `6 F- f/ _
                For I = 0 To B.Count - 1 '遍历块元素
3 X5 N; |0 @% x  I  `+ P, ~4 U                    If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环
9 V0 g7 N0 y* h. E8 O                Next
5 ?, r0 K' B" a1 W5 ^& F                .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)2 ~- D; {5 f& l2 S- P4 F
                '根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)
' c7 O( @% X: I- @. w* B                Exit For
- E3 l6 J% H5 l9 i" u: G            End If
$ z& x' h+ ~3 v# h) {  W/ a        Next7 w" A1 ^1 D5 w  p5 e2 \' w0 J
    End With
8 L5 m7 T2 q8 s* j0 uEnd Sub
发表于 2008-9-23 19:43:01 | 显示全部楼层 来自: 中国江苏无锡
复制粘贴。3 Q4 f& E1 M/ k5 _. |3 y- \
(defun c:copy&paste ()) |! |1 a- c. \7 W7 |) b9 l8 r3 F
  (setq ss nil)8 _& S5 U9 A+ T5 l5 i. K
  (print "输入回车进行粘贴")
/ b3 l3 S) b/ `* @) V  (setq ss (ssget))
) s9 {/ L% S. b$ C3 d9 r+ T4 R% d7 J  (if (= ss nil)
$ X" d2 W$ _- w    (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))
, `4 y# |& D- h% k    (progn6 Y- ~: ~' a4 P% j# K. c
         (setq D1 (getpoint "插入点:"))
( q& F. [7 C7 ~" U. D           (if (findfile "tigerspace.dwg"), @: |  h5 F  d: O/ ~% e! W: }7 ]% a
             (command "-wblock" "tigerspace.dwg" "Y" "" D1 ss "")
! a( |; w8 X$ c( R             (command "-wblock" "tigerspace.dwg" "" D1 ss "")2 p$ b9 a; C. c- u+ K+ j
           );;结束if
! L4 e6 U' ~& K3 ]% b         (command "oops")- P3 Y# g- I) `* h( {9 d; p
         (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))
8 J/ [. Q- K4 h7 ^     );;结束progn: ^  n+ N; g- Q" m5 P
  );;结束if
' A  d# y* \, v" l, p  (princ)2 R. G# R5 k: l  D; x
)1 r: s6 ]# }. m
1 _( b- ~& k9 R/ a) s8 v% X: K
[ 本帖最后由 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 )

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