QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
4天前
查看: 2134|回复: 4
收起左侧

[已解决] 系列零件设计表中草图文字有没有类似CAD中缩放比例的驱动参数?

[复制链接]
发表于 2010-8-25 10:50:22 | 显示全部楼层 |阅读模式 来自: 中国江苏苏州

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

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

x
系列零件设计表中草图文字有没有类似CAD中缩放比例的驱动参数?
: z# K6 _1 v  D# J1 q如何对草图中到文字进行参数驱动??
发表于 2010-8-25 12:37:19 | 显示全部楼层 来自: 中国江苏无锡
我跟你说。没有的。CAD没有内置这种功能。。另外文字也没办法转化成绝对的可约束性草图除非专门做这种字体,但是正如我们都知道,字体种类非常多。& e6 \6 E) b% P6 S
所以这种事,是非常难的。。在SW没有有效的解决方案前。暂时还只能手工运作多点事吧。。
! B3 e6 J! `- j 不过。这几天为了你这种事。就有人在研究啊。。。 ----------------------
  I/ `) J/ k* Q1 p6 K2 s算是有一点点的改观。。
1.gif

评分

参与人数 1三维币 +3 收起 理由
chenjun520601 + 3 应助

查看全部评分

 楼主| 发表于 2010-8-25 16:26:07 | 显示全部楼层 来自: 中国江苏苏州
2# votasee + ]6 J7 \2 \! E/ u' ]

  o1 k6 y7 u2 O: u% E  m/ m% U* m( O
8 ^- q& p; J" |. G
谢谢!这个是VBA做到吧?有源码吗?提供下载吗?能否学习下,自己做估计也能做得出来吧,只是不知道驱动系列零件到EXCEL到API
发表于 2010-8-26 16:24:50 | 显示全部楼层 来自: 中国江苏无锡
我觉得为了个小东西.还要带个EXCEL什么的..还要去驱动..很麻烦...( r0 U. h  R5 s

' J9 X0 }# D, [* f+ J- \, H这种方法也是临时性,局限性很大.也没大用场....只不过对草图文字多的人稍微有点小用....0 M! a0 ^1 X) ~4 t4 Q" j. c- u5 p
8 Z! h- T; X) f& y. y* Y: t
而且目前也感觉很不好用...所以暂时不打算番出.当然如果你喜欢,也可以去研究一下.安装目录下的APIHELP中的帮助文件...应该有收获的.. }% N: \# Y4 k* ?; {5 f- X

" b( V& e# ?1 v, K& {有一小段代码你自己看看
  1.    
    / @6 Q$ F3 n3 Q1 @2 Y% C
  2. Private Sub cmdAdjustTEXT_Click(Index As Integer)
      b# B4 ]! X4 a9 U$ p. f' @
  3. If linkSW2 <> 1 Then Exit Sub
    $ g  Q% q8 |" t2 z1 t" Z. Y- e+ m$ T
  4.         Dim sTXT As String1 _" b3 v/ N7 W0 p" B7 A1 z: b; [
  5.         Dim sel As SelectionMgr
    6 Q9 F9 j* z( Y4 t" {1 y# N
  6.         Set sel = swDoc.SelectionManager
    % W5 `/ G7 P$ z) C- w
  7.         M = sel.GetSelectedObjectCount
    1 V' N1 V! |- F! E) o
  8.         ''//10是草图,14标注,15注解.! m6 @" `; f# t) H! n
  9.         If M > 0 Then9 n" P0 f; ^1 |3 g
  10.             If sel.GetSelectedObjectType(1) = 34 Then
    6 H* C+ F: q! q2 ?3 h
  11.             Dim swSKT As SketchText9 B' u1 ^! C3 u( A0 s9 g
  12.             Set swSKT = sel.GetSelectedObject(1)% `, v- B4 }: ?
  13.             Dim tf As TextFormat
    , r: u( a* [' b0 R# U& _% D
  14.             Set tf = swSKT.GetTextFormat
    1 D# j! s1 o  b: K. L% ]. o% A
  15.                 tf.CharHeight = tf.CharHeight + IIf(Index = 0, 0.0001, -0.0001), g/ p1 l5 t8 _) D" W
  16.                 sTXT = Round(tf.CharHeight * 1000, 1) & "mm" & tf.CharHeightInPts & "#": Debug.Print "New=" & sTXT, _5 w3 A; b  ~1 @% t1 U
  17.                 swSKT.SetTextFormat False, tf' P+ A2 ~  z9 U: C/ ?! e
  18.         End If% Z: j, p( Q9 @. p& V1 r6 t) w9 C
  19.     End If. q+ D: Y0 p) [$ o7 d) n7 j
  20. End sub2 K! o: A/ [5 z
复制代码
其中LINKSW2是一面连接函数...你可以自己写或照样例实现...6 O2 m( k/ D; o$ ^6 x
INDEX是一个传入参数,用于控制增大还是缩小 ...

评分

参与人数 1三维币 +2 收起 理由
chenjun520601 + 2 技术讨论

查看全部评分

 楼主| 发表于 2010-9-3 08:29:37 | 显示全部楼层 来自: 中国江苏苏州
谢谢 ,找到个相关的例子5 Q$ S3 n# _. R9 ?* k
SolidWorks API Help 4 ]& Z; c4 I, T. j# H* d1 |  {
'---------------------------------------------------
9 z  `/ h2 [2 s$ I" N* N'
! r# U& |" s! X; j; l: B' v' Preconditions:5 R- L+ R5 x5 ^! l
'       (1) Part, assembly or drawing is open.5 p, J" j" d0 G8 }7 r- [7 Y9 T
'       (2) An annotation is selected.1 w% O( Q' s: k- Y8 A1 L
', j0 w* o. T+ U' ~/ V: ~* M; X
' Postconditions: The text format of the selected annotation is changed.
9 Q$ v6 M, q) l+ M'
' a! ]/ ~, c7 Z' h! A4 k'----------------------------------------------------5 ~) ?& x1 U" X3 N" s8 E, l
Option Explicit
/ x7 H+ I% y! \8 N3 I$ Q) A1 G; C* w2 d, p; l/ K
Public Enum swAnnotationType_e& u4 J, Z* G6 U$ p$ l
    swCThread = 13 z/ }1 }( |% B* u5 P
    swDatumTag = 2$ p( i3 E- P! D% c$ v
    swDatumTargetSym = 3
. J' f7 H8 f- C$ T5 d: T# x    swDisplayDimension = 4
6 M  c/ N- J* G( a7 Z( ?" {: K    swGTol = 5
0 s, S2 s  }) k! E  e    swNote = 6
3 a4 D+ p% ?: f+ C    swSFSymbol = 71 U$ ]5 y/ x0 W( W9 e9 _
    swWeldSymbol = 8* K( z$ F& o" n! X* }3 u8 M
    swCustomSymbol = 9
  R* r& b/ _6 k( u1 E7 G& F    swDowelSym = 10" Z6 @* \) Q" \# u1 @7 c
    swLeader = 112 C: T7 v) t; H  }1 T$ T8 b
    swBlock = 12. F. Q, Y' h/ m) A% u
    swCenterMarkSym = 132 s. q9 o) v  ^  Z4 {0 _0 l! C5 Z
    swTableAnnotation = 14. g0 {; \) Y+ y* d
    swCenterLine = 15
# e$ o+ Q3 ]2 I' ~5 ]6 a    swDatumOrigin = 16
: C+ j% R+ i# m: [: `End Enum0 M" u2 z' e% q- k  j3 E
: b7 P+ d- s' Y8 `5 v( i
Sub main()
; w/ q, v" u; `! r5 B0 \. Q6 m
$ S8 }2 ]5 R) N& ~" @) ~% F( J2 D    Dim swApp                       As SldWorks.SldWorks
+ @' J) f. u, O, h4 l$ m    Dim swModel                     As SldWorks.ModelDoc27 V1 Z6 P. D1 Q0 B
    Dim swSelMgr                    As SldWorks.SelectionMgr
3 B8 |- k4 A! a& w+ c" V    Dim swAnnObj                    As Object, j8 ^& z5 r+ ^* _% S
    Dim swAnn                       As SldWorks.Annotation/ w) r2 ?8 Z- s$ ^; u7 ]: x3 ~% f
    Dim swTextFormat                As SldWorks.textFormat$ e4 N3 d3 g3 ^5 \0 M2 E
    Dim i                           As Long& k4 F4 v9 J* q! {
    Dim bRet                        As Boolean+ e% ], m) x- E$ U* n

) R( L- `+ f9 y# d! V    Set swApp = Application.SldWorks* m/ Z8 f" I# U0 A1 l3 j  H
    Set swModel = swApp.ActiveDoc
; k- ~+ v% n3 S3 O& s% s1 O    Set swSelMgr = swModel.SelectionManager
0 B$ ~9 o1 m) y% Z3 w    Set swAnnObj = swSelMgr.GetSelectedObject5(1), p9 m' Y) {9 N+ `7 x  t
    Set swAnn = swAnnObj.GetAnnotation: Debug.Assert Not Nothing Is swAnn
, I6 g1 B6 q$ P  L( @
: }. ~3 B6 \/ @. M    ' Get text format information0 N; J1 ?5 M2 Z
    Debug.Print "File = " & swModel.GetPathName
5 w( K: d; i1 r    Debug.Print "  " & swAnn.GetName & " <" & swAnn.GetType & ">"
& ^, H1 e& V# P8 a, B- o1 M9 P5 v6 u" D* t, F5 B
    For i = 0 To swAnn.GetTextFormatCount - 10 R' u5 p+ u8 v% `& L, F# M! N) c
        Set swTextFormat = swAnn.GetTextFormat(i)
" ~3 j5 y/ w2 ^$ L* W9 L# A2 y$ j. ?( k. A8 D3 f- @5 [' \
        ' Change text to be 10mm high, bold, italic, and Comic Sans MS font face) B% X8 _% C8 d- u5 n  {& d
        swTextFormat.CharHeight = 0.01- E/ T' ?: r# Q

  X3 w" p% q/ [        swTextFormat.Bold = True
3 M) g2 Z+ ]- y7 A; A+ d        swTextFormat.Italic = True
6 P) E( H) v" h! F        swTextFormat.TypeFaceName = "Comic Sans MS"* F2 U) d: p+ `8 W- K
9 b% v% H& i1 s6 _6 m
        bRet = swAnn.SetTextFormat(i, False, swTextFormat): Debug.Assert bRet) b+ k3 n/ O5 O! M
    Next
+ p& J: f% {' ]$ o; q6 d! @/ wEnd Sub. I  L- L% J9 ~5 F2 }! Y3 G
'---------------------------------------------------------5 ?6 p9 J& o" J( [, t+ h# j6 A. v

& K  J+ \# s. F3 E' T6 {8 m/ q4 [( |; B5 g9 v
& H; @) i& l! F. W
4 {; D7 n) b/ {+ H& ]

# J, _) y- |0 B1 J2 e% E8 ?0 M请问您对 SW 二次开发怎么样,能否请教一些问题
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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