QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
比如一个椭圆,长轴两个顶点位置已知(不水平),则需要将块插入后旋转。/ n- }4 e- X3 t+ F: @. t
InsertBlock(插入点,块名, X 轴比例,Y 轴比例,Z 轴比例, 旋转角度)中旋转角度未知,程序上怎么实现?
4 P8 U7 j: ?7 o$ w: c3 q5 u请达人指教!多谢!
# b4 e7 Q* [; D5 h- h9 Dbow~
发表于 2008-9-23 18:00:07 | 显示全部楼层 来自: 中国
Sub A()
5 \6 k, _8 m) W+ k    Dim B As AcadBlock, I As Integer, P(2) As Double' c5 R8 G1 R0 d' N: ]- m0 @6 a- X! x
    With ThisDrawing
* Z$ F& A4 p3 J! Z) ]5 w        For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块
, I$ H* C( P, K6 d% w/ I            If B.Name = 块名称字符串 Then '找到指定的块
3 L2 [. u* V$ J0 M1 q  b                For I = 0 To B.Count - 1 '遍历块元素" z8 B: w6 V- G) h, l2 b
                    If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环; l4 f8 V3 V* c/ n, X) n
                Next
0 {9 a$ c3 O, |4 a9 ]: Q                .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)1 @* H7 s$ L* O2 x2 w1 X0 ?! ]
                '根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)6 T% C) q$ j- m8 s* g
                Exit For" G6 X" E& R  D' V8 h- [
            End If
5 i% |* b/ V& P5 Z) q! f& g        Next4 o  q. E$ J; h" F. i# j
    End With$ W/ e- F' ~2 Q7 s- H# P3 f2 Z
End Sub
发表于 2008-9-23 19:43:01 | 显示全部楼层 来自: 中国江苏无锡
复制粘贴。  b* B! X& g: c5 O: t! C" f
(defun c:copy&paste (): t; r" E1 C  A3 @3 e. }
  (setq ss nil)  v* B8 L% B- {9 u+ U& N' q
  (print "输入回车进行粘贴")/ Q, ^  `! W8 w7 I2 p
  (setq ss (ssget))6 R2 r2 A8 N: y! u' G- l. r- S
  (if (= ss nil)9 z; |: E$ G8 P7 }/ c( }5 Q
    (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))
* K& x0 Y  B2 z$ w    (progn
/ {* Y  |! t) r2 ?- L2 |         (setq D1 (getpoint "插入点:"))
8 ^" b+ w- q# e! z           (if (findfile "tigerspace.dwg")
$ z+ F+ G0 j3 w0 o9 d2 T4 r             (command "-wblock" "tigerspace.dwg" "Y" "" D1 ss "")
; _: H) C" _$ s  n4 y" C$ X             (command "-wblock" "tigerspace.dwg" "" D1 ss ""). y& r; O) t" y7 q0 x+ t0 G3 M
           );;结束if
; e3 f2 J; V% |2 i0 F9 ^6 K6 [; e         (command "oops")
: c6 R# L3 p( s         (command "-insert" (strcat "*" "tigerspace.dwg") (getpoint "插入点:") (getreal "缩放比例:") (getreal "旋转角度:"))
  J0 r4 M2 h# y( g5 F4 W     );;结束progn, a# h+ A2 U3 f3 N+ _( k
  );;结束if
5 x9 }$ o4 P- v1 A9 `% X: Z' C  (princ)
8 _- p: O+ k4 Q/ l: z; @)
1 F# V7 a$ b0 \' O) t8 Z5 y1 P
* }1 W2 o2 w( u9 i[ 本帖最后由 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 )

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