QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
11天前
查看: 2828|回复: 3
收起左侧

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

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

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

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

x
比如一个椭圆,长轴两个顶点位置已知(不水平),则需要将块插入后旋转。
4 g0 m( @: J0 dInsertBlock(插入点,块名, X 轴比例,Y 轴比例,Z 轴比例, 旋转角度)中旋转角度未知,程序上怎么实现?
* W9 B- h# f2 d请达人指教!多谢!
$ i, l0 C! F" Y/ W) a3 ]) t: abow~
发表于 2008-9-23 18:00:07 | 显示全部楼层 来自: 中国
Sub A()& @. u3 I+ f+ T3 F
    Dim B As AcadBlock, I As Integer, P(2) As Double
9 C7 v8 t7 _* B/ [9 i8 V    With ThisDrawing9 z. C0 d8 q  c' `: W+ h( L! R+ G
        For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块
0 H$ x0 u0 ]8 N% I5 Z! N9 t            If B.Name = 块名称字符串 Then '找到指定的块
  r: [$ N0 Z3 x. h! x# M6 U  O  c                For I = 0 To B.Count - 1 '遍历块元素6 G4 q7 y9 `2 |  C. K
                    If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环, s8 q6 L2 d. U! P$ s3 L% q
                Next
7 H4 @( Y8 m& q. Y0 I5 i7 R$ t                .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)
/ x, g4 n( j* L1 o8 [                '根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)
5 E/ [, s. n, Y4 t$ h+ b                Exit For' x0 O/ l. K) p+ v6 r
            End If2 e" b% N- `. W7 @- d* M1 N2 {- q
        Next
2 ]4 A) a& O$ c" j3 s" X* L5 T# I7 p, ]    End With
8 l: o) p3 s2 Y9 u! ^End Sub
发表于 2008-9-23 19:43:01 | 显示全部楼层 来自: 中国江苏无锡
复制粘贴。
# s# k' ^4 L$ C+ i(defun c:copy&paste ()& i# S* g- C6 f: x' F9 ?8 |5 V
  (setq ss nil)
% H. C$ W) Z: K' Y6 \0 ?# Q  (print "输入回车进行粘贴")) \6 e. L8 s: |  o. s7 ]
  (setq ss (ssget))
' q# N6 \- O) z/ y, Q. g6 y: O  (if (= ss nil)
4 }7 l* S, N, e. N- A' s, \    (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))6 e3 Q, J0 E" _: j3 J/ E2 ]
    (progn+ l+ B! j! j9 W
         (setq D1 (getpoint "插入点:"))) i0 [# x8 e! g/ {' v( N; v. S* n
           (if (findfile "tigerspace.dwg")0 z0 c9 u: |/ k
             (command "-wblock" "tigerspace.dwg" "Y" "" D1 ss ""). s: K- s- N  o0 x
             (command "-wblock" "tigerspace.dwg" "" D1 ss "")- O4 y/ R) K: d( |, ?
           );;结束if
9 B6 d6 p4 c# A1 ?3 ?" p  D, v         (command "oops")
" K& e, O- `7 q# x+ ]0 t$ r         (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))4 F9 p2 e9 ]" }" W: y
     );;结束progn
) C" j- a! m8 s9 G/ {  c  );;结束if
) A! M0 {' z2 t( I% V7 M7 Z! c  (princ)
. I3 T/ H  F% |): [; e8 }% \& j0 _8 b
9 ]4 H$ G' _) R; B+ o
[ 本帖最后由 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 )

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