QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
比如一个椭圆,长轴两个顶点位置已知(不水平),则需要将块插入后旋转。
: z* H0 m5 f8 L) C. M; gInsertBlock(插入点,块名, X 轴比例,Y 轴比例,Z 轴比例, 旋转角度)中旋转角度未知,程序上怎么实现?
; V  P4 ~( D0 F: ^) I0 r0 ^4 b* j请达人指教!多谢!
* d% q. Q- W& Ebow~
发表于 2008-9-23 18:00:07 | 显示全部楼层 来自: 中国
Sub A()$ w& |/ ]  M: P! A
    Dim B As AcadBlock, I As Integer, P(2) As Double/ A6 t7 a  E2 Q) B  ?  I; ?5 _
    With ThisDrawing
0 d: }# b* R7 ?/ O0 T$ r        For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块
* V0 {( I  Y# u) X( l9 R            If B.Name = 块名称字符串 Then '找到指定的块$ c8 I) [, `( h  n& c
                For I = 0 To B.Count - 1 '遍历块元素" F" k& g" \" f8 @/ f
                    If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环6 Z( r2 [. |. s' }, u2 R: m
                Next
  E4 k7 c* t& t) O* e0 U3 ]                .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)- Z0 t; C% u) U  a# }; @
                '根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)
- h+ }# i: P3 T! {  h% B! k. s' K                Exit For
( }8 B" q% p) a4 Q            End If
2 t! \' Q* r$ o+ r: R5 d: H% H        Next5 @+ X: P) D; a
    End With% q- d6 c% ]* z5 d
End Sub
发表于 2008-9-23 19:43:01 | 显示全部楼层 来自: 中国江苏无锡
复制粘贴。
; ], M. i' g& k) ^1 y! {(defun c:copy&paste ()* y, o" ], h. Q; Z
  (setq ss nil)
4 G$ U8 V* y3 Q) f; E% O$ t  (print "输入回车进行粘贴")
6 Q7 L; P) m' g) [" j2 f  (setq ss (ssget))" L  f; j' W, O& o8 x
  (if (= ss nil)
: ?; g3 e3 y" J: w( u) B! P    (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))
; ~, C; Z* k% @: }0 ]; z8 B$ |    (progn4 y$ b# n' A- f  g1 ~: x
         (setq D1 (getpoint "插入点:"))
) j% O/ ?2 G# |% ?& |0 I           (if (findfile "tigerspace.dwg")
) T) @: e  u6 i9 c             (command "-wblock" "tigerspace.dwg" "Y" "" D1 ss "")1 s0 b2 g4 u% q# a$ j- s. z2 n2 v
             (command "-wblock" "tigerspace.dwg" "" D1 ss "")8 B: V2 Q' ~. N, ]8 D, [
           );;结束if
2 p, ?9 N, i( u! ?. U         (command "oops")6 Q% U9 k; O# z) l
         (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))
7 ]0 r" D/ S2 I! w* {- L     );;结束progn
" U, a) E; ^5 e% e( O  );;结束if/ [; u0 x; z  j4 c
  (princ)
4 }- N, [( X4 L2 E  k; p)! u4 a) C& L8 K/ l3 s- G. s6 Q

" x5 M' D- Q2 P[ 本帖最后由 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 )

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