QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
10天前
查看: 2772|回复: 3
收起左侧

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

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

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

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

x
比如一个椭圆,长轴两个顶点位置已知(不水平),则需要将块插入后旋转。
# _, x, `! P1 U  ~( h$ SInsertBlock(插入点,块名, X 轴比例,Y 轴比例,Z 轴比例, 旋转角度)中旋转角度未知,程序上怎么实现?
' g$ @( T- `4 Y- t1 |+ h' P0 ]& c请达人指教!多谢!
# j- i1 {6 D( u1 f( d) \2 F& Y! Cbow~
发表于 2008-9-23 18:00:07 | 显示全部楼层 来自: 中国
Sub A()( N! A) f' Y2 g6 H  K. C
    Dim B As AcadBlock, I As Integer, P(2) As Double: ~& I- Y; [0 ?* y
    With ThisDrawing
$ Z; L/ A, o) Q$ ]        For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块6 t' S" L/ A1 t0 M
            If B.Name = 块名称字符串 Then '找到指定的块
0 X: ~3 a( e% W/ [3 ?                For I = 0 To B.Count - 1 '遍历块元素
: i" d  H# r# H7 @+ ~                    If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环
7 @( {. R/ O; A! P0 U                Next' l7 ?. \1 ~5 ?
                .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)1 o! T; H$ }. O; v
                '根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)
, [9 ^8 \2 V5 r9 R' A" s! ^6 O+ F                Exit For
6 A+ y  H8 F1 C( D            End If
2 F) H, B' a8 i1 h% @8 k! o        Next
6 O6 D; R1 h) ?/ L2 T7 L( p1 _3 s    End With. P/ n1 ]7 F$ Z  ?$ u
End Sub
发表于 2008-9-23 19:43:01 | 显示全部楼层 来自: 中国江苏无锡
复制粘贴。% F/ L8 l' f5 w; W
(defun c:copy&paste (), F! C$ U' o. \( }8 i5 ~
  (setq ss nil)  `7 x4 e  ?4 {/ z1 c! D- Y" B  ^
  (print "输入回车进行粘贴")
* y" ~+ j: T8 c. `/ {9 n  (setq ss (ssget))
5 B1 [: g" _  n  ]" ]4 n  (if (= ss nil)8 e4 Q3 l, N- |, Z
    (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))
$ k9 S6 M% R" k6 a5 p/ a2 B( u% o$ k    (progn* s" e& k* L- V/ ~
         (setq D1 (getpoint "插入点:"))( d0 {+ B- B' F4 _. Q! ]+ l- V- j4 E
           (if (findfile "tigerspace.dwg")
6 Z, i( J- D! W" E4 {             (command "-wblock" "tigerspace.dwg" "Y" "" D1 ss "")
0 Y, p. u, Y+ e( N. j             (command "-wblock" "tigerspace.dwg" "" D1 ss "")  Q" v% r. p; I2 W( l5 [+ |
           );;结束if* Y/ ]# D, o& k2 K4 W
         (command "oops")
, y3 G/ M) ~9 i* w6 S         (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))8 g& F6 O1 \- @5 w5 L& W+ Y
     );;结束progn
# V* q; K; u7 K/ M  );;结束if8 Q& @& \) o1 B, i- J
  (princ)3 ?( \$ E4 j: F0 b( l2 r0 s
)
/ K; D" r: q9 v8 a2 p
4 f0 M8 S" N! N6 r1 H" d[ 本帖最后由 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 )

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