QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
比如一个椭圆,长轴两个顶点位置已知(不水平),则需要将块插入后旋转。$ Z; M& x: D* U; `+ f4 Z$ r5 i
InsertBlock(插入点,块名, X 轴比例,Y 轴比例,Z 轴比例, 旋转角度)中旋转角度未知,程序上怎么实现?  i* c$ c& P: l
请达人指教!多谢!* X  }( d* I2 F3 P; ]. K2 \) D; h  R
bow~
发表于 2008-9-23 18:00:07 | 显示全部楼层 来自: 中国
Sub A()
4 H9 D+ A. z+ C0 }2 F+ B$ I    Dim B As AcadBlock, I As Integer, P(2) As Double6 S/ l2 d7 {6 n
    With ThisDrawing( A) u( g# a5 v7 [
        For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块
9 c2 G8 J7 k: S            If B.Name = 块名称字符串 Then '找到指定的块8 W4 h9 ^4 p* m3 X" M( s
                For I = 0 To B.Count - 1 '遍历块元素
1 ~2 s$ u1 D6 [! y* Y                    If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环* F8 E3 f( Z* D4 \
                Next
  L8 D# ~' n4 S; J                .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)
, @2 G3 b0 N1 N: j' W                '根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)/ ?, k/ y3 j! _4 Y; a
                Exit For/ f3 ^/ O5 w% Q* u, q* \
            End If
  `+ ]1 t) b" E. ?6 @( q        Next
' @) J  w+ e; ~6 H6 {    End With  ~( c8 J9 W; O3 ^* T: p0 D- m: r9 p
End Sub
发表于 2008-9-23 19:43:01 | 显示全部楼层 来自: 中国江苏无锡
复制粘贴。. [& _- a; f1 Q- p# v
(defun c:copy&paste ()
7 ^; f) Q1 |' a9 Z7 t! V  (setq ss nil)3 c# D3 m% y/ h, M/ W  o/ ]# M
  (print "输入回车进行粘贴")# w0 q$ j9 i% B3 k0 F  u
  (setq ss (ssget))+ [% r$ F% c9 S% P! N
  (if (= ss nil)3 |/ r; m+ t4 T" ?8 W! F- e
    (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))
- ~4 t8 N0 z0 P( h: o* G    (progn6 G1 M: p4 j6 x+ }, e0 \! P
         (setq D1 (getpoint "插入点:"))- @, H) @+ X7 x  k+ t1 R2 g' Q0 l2 D
           (if (findfile "tigerspace.dwg")
, w; ?0 `; d$ {- q# ^& z             (command "-wblock" "tigerspace.dwg" "Y" "" D1 ss ""), |. t6 k9 G" X; p* Z& a& [
             (command "-wblock" "tigerspace.dwg" "" D1 ss "")* B  E5 V; x4 o! M$ U, c5 k1 F$ J
           );;结束if+ p8 e' o" R6 M) T) [1 t1 R3 x
         (command "oops")
6 O* N0 u5 _' `; Q         (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))
  d" v6 _2 L; M& H! k6 `     );;结束progn9 ?# ?( N" R+ b9 A
  );;结束if
* l) n2 f' n3 L, ^; X  (princ)' b$ s( h: b; f* t
)" A: Z- B: s; `( A7 A
0 r# S7 _- O5 e. b4 ?
[ 本帖最后由 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 )

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