QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
系列零件设计表中草图文字有没有类似CAD中缩放比例的驱动参数?8 |4 D5 f( h4 D% V8 l0 _
如何对草图中到文字进行参数驱动??
发表于 2010-8-25 12:37:19 | 显示全部楼层 来自: 中国江苏无锡
我跟你说。没有的。CAD没有内置这种功能。。另外文字也没办法转化成绝对的可约束性草图除非专门做这种字体,但是正如我们都知道,字体种类非常多。* {* [# w( `# Z2 W
所以这种事,是非常难的。。在SW没有有效的解决方案前。暂时还只能手工运作多点事吧。。
# B6 M9 Q- T1 b5 l& P! ] 不过。这几天为了你这种事。就有人在研究啊。。。 ----------------------
, v9 X& N$ r& u" G算是有一点点的改观。。
1.gif

评分

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

查看全部评分

 楼主| 发表于 2010-8-25 16:26:07 | 显示全部楼层 来自: 中国江苏苏州
2# votasee
' Q  q' j. j7 M0 `: k/ }' C3 K4 B' l( V
5 X* w8 b9 p8 d  _! m) N8 z9 p- V
5 {5 k1 E; y# N! ^; O
谢谢!这个是VBA做到吧?有源码吗?提供下载吗?能否学习下,自己做估计也能做得出来吧,只是不知道驱动系列零件到EXCEL到API
发表于 2010-8-26 16:24:50 | 显示全部楼层 来自: 中国江苏无锡
我觉得为了个小东西.还要带个EXCEL什么的..还要去驱动..很麻烦...
$ a- S/ m/ h' W# g# d/ U
# [  h. L' }; W5 o  r1 D5 A) ^这种方法也是临时性,局限性很大.也没大用场....只不过对草图文字多的人稍微有点小用....
& b& A! b! j6 \# U! o: T6 H/ X4 t: X/ E: c8 b/ `
而且目前也感觉很不好用...所以暂时不打算番出.当然如果你喜欢,也可以去研究一下.安装目录下的APIHELP中的帮助文件...应该有收获的.3 P" z; c2 Z* G. g( G
; S4 Y! |  t5 A" H/ b
有一小段代码你自己看看
  1.    
    + B" n- C% Q) Q4 J
  2. Private Sub cmdAdjustTEXT_Click(Index As Integer)4 T, \# E% R. d* v
  3. If linkSW2 <> 1 Then Exit Sub
    7 z" t) W7 @; W6 o  i
  4.         Dim sTXT As String
    # Y3 Y; Y& S- o8 q2 ~
  5.         Dim sel As SelectionMgr
    1 N' T1 B& m+ K) I
  6.         Set sel = swDoc.SelectionManager  l) v0 B( U7 |% c+ W; V& _% u
  7.         M = sel.GetSelectedObjectCount  `" S  w) o7 O0 }7 q$ J
  8.         ''//10是草图,14标注,15注解.: [  \+ P' r; m7 s/ f7 c8 Z
  9.         If M > 0 Then( o3 h7 w$ Z" d0 c. O
  10.             If sel.GetSelectedObjectType(1) = 34 Then. o5 P. L) s$ E7 l3 N
  11.             Dim swSKT As SketchText6 ]" K  l! \  @
  12.             Set swSKT = sel.GetSelectedObject(1)
    5 {8 {2 @& T- \& R- M
  13.             Dim tf As TextFormat$ u6 E, d' u4 M- w1 R
  14.             Set tf = swSKT.GetTextFormat- _2 ^' Q: z+ O- q4 R
  15.                 tf.CharHeight = tf.CharHeight + IIf(Index = 0, 0.0001, -0.0001)
    & b' |7 t( a4 [5 h6 v0 [3 [( ]$ T
  16.                 sTXT = Round(tf.CharHeight * 1000, 1) & "mm" & tf.CharHeightInPts & "#": Debug.Print "New=" & sTXT7 n' i2 o+ x$ n0 ]1 G3 z9 {* j
  17.                 swSKT.SetTextFormat False, tf
    % d* W! h( f" M! d) O0 u2 r
  18.         End If  m$ [6 d$ g7 Q/ V
  19.     End If
    4 k1 w5 J) }5 F  y* f6 @6 Z
  20. End sub
    ) s( c2 G4 o: A. Z- z
复制代码
其中LINKSW2是一面连接函数...你可以自己写或照样例实现...4 \- `; {* n9 {0 p* d9 D
INDEX是一个传入参数,用于控制增大还是缩小 ...

评分

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

查看全部评分

 楼主| 发表于 2010-9-3 08:29:37 | 显示全部楼层 来自: 中国江苏苏州
谢谢 ,找到个相关的例子
0 @! m0 V& u6 _2 {3 ?0 ?SolidWorks API Help
  K* c" o# @& I9 h1 |9 P5 s5 p'---------------------------------------------------
3 Q; \5 L/ ?. F/ O6 _6 P- t6 J'
+ s2 ^1 T+ ]$ f1 B( W' Preconditions:
2 q1 ]+ U/ A& ?5 Q* d1 c! d: s'       (1) Part, assembly or drawing is open.
! d% o, J8 W( [- P'       (2) An annotation is selected.
! P8 G7 d( O9 _7 X% G% I% Z'! p- b1 h* N! I5 o4 s: M& t0 B, L
' Postconditions: The text format of the selected annotation is changed.
  c6 X# s, v0 L9 [+ w'
4 a) v* b- e! U+ B'----------------------------------------------------
4 L/ b+ I2 _+ l$ IOption Explicit
3 L" [5 o# w) R7 X# c: T5 E/ I5 C, E% y$ D$ H3 f8 W$ K
Public Enum swAnnotationType_e
1 @6 h5 o9 H, j    swCThread = 1# s2 t, ], R: c
    swDatumTag = 2$ l+ {" f3 |3 D- T; ^  S
    swDatumTargetSym = 3
/ P2 Y/ n& _! u: K    swDisplayDimension = 4
6 ~/ O, {( E/ x+ v6 z- b    swGTol = 57 ?+ F# k: Z6 A! [) r
    swNote = 63 P# P& J3 w3 [. g7 }8 h( v
    swSFSymbol = 78 E' }4 l- F; Y9 ~
    swWeldSymbol = 8; u& c0 N! B& Q) c. ~( m" u
    swCustomSymbol = 9) m& q. `3 d% G, g$ _; a
    swDowelSym = 106 J/ _& X  a. ^' \8 b' w+ f
    swLeader = 11
- C, [# H, p( p/ v    swBlock = 12
, W* t- S. F, y4 K& I9 L0 Y    swCenterMarkSym = 13
2 i: ^/ e! n' q* p2 ~; w    swTableAnnotation = 142 f  C8 b7 N/ I/ x+ w! J
    swCenterLine = 15% P; Y8 [" {2 a. |/ q
    swDatumOrigin = 16  g* S* l! r' N4 i* a% h. F: t1 f
End Enum
6 _; n/ b! s2 j9 U0 }
( F2 T7 @8 F) g9 n- D* p& ]7 mSub main()
0 c# x: u7 S' M/ j1 d! L2 @5 E' r- T! {( ~3 H4 C, c) m/ S
    Dim swApp                       As SldWorks.SldWorks
( i5 m4 S9 U! j9 @7 ^4 r0 Q  N5 `    Dim swModel                     As SldWorks.ModelDoc2, R% T  ]  b- W- M, f8 |- M
    Dim swSelMgr                    As SldWorks.SelectionMgr
! c( X1 ^( ?1 F7 }$ z% t. }/ _    Dim swAnnObj                    As Object; @% @, m6 V5 N3 J
    Dim swAnn                       As SldWorks.Annotation
/ M6 A( {; V+ J1 B# J' s    Dim swTextFormat                As SldWorks.textFormat( Z1 I2 Y: N; `) z8 X
    Dim i                           As Long, b3 N2 y' H; h
    Dim bRet                        As Boolean8 J: f) ~6 z& R. r3 _4 E/ x

$ p9 _3 L9 X; M3 m( S    Set swApp = Application.SldWorks
( V, s9 V2 A8 ]& J5 I/ }+ b    Set swModel = swApp.ActiveDoc" D2 W9 N- a0 D9 h! p& P9 N
    Set swSelMgr = swModel.SelectionManager
9 h+ t' \3 t7 b& V& J, b    Set swAnnObj = swSelMgr.GetSelectedObject5(1)6 ^2 ^! c2 F1 }3 r5 j. F' _
    Set swAnn = swAnnObj.GetAnnotation: Debug.Assert Not Nothing Is swAnn
# x3 v( P9 V- U  [$ k; M2 T0 [( _! q6 t5 v' d4 k
    ' Get text format information
0 V/ ^6 x5 `9 x6 S$ s    Debug.Print "File = " & swModel.GetPathName
1 z& {) `- }; j& {) b    Debug.Print "  " & swAnn.GetName & " <" & swAnn.GetType & ">"
0 _$ r( k2 f# r) ^9 H" d$ u7 p2 s( p. T# @/ a& G, U
    For i = 0 To swAnn.GetTextFormatCount - 1- e8 h* m- [& }
        Set swTextFormat = swAnn.GetTextFormat(i)
1 Z  x# ^" D% |- e# p0 C' @) f  m( o1 P
        ' Change text to be 10mm high, bold, italic, and Comic Sans MS font face
' W! n) c+ R- b! d! J' @        swTextFormat.CharHeight = 0.01
% J' H- i( @9 M$ D. ^8 g2 Q5 R
% j! R$ H% T. M! W: t        swTextFormat.Bold = True2 S7 u0 ?. `7 x0 V) L  [
        swTextFormat.Italic = True
& g0 ^8 W4 Y* U) h8 `/ Y" a7 `        swTextFormat.TypeFaceName = "Comic Sans MS"
, N) N! ], f$ y5 E6 u( G! b2 v- s
* N0 [9 E% F8 k$ T- l4 y        bRet = swAnn.SetTextFormat(i, False, swTextFormat): Debug.Assert bRet* v  x5 m1 \6 n$ f6 N3 c) f& l
    Next
" L4 }; [0 U9 G; f% o% D% NEnd Sub* Z# {  i( b2 v9 T* b) w) O
'---------------------------------------------------------, G+ m* a2 B/ O% }

5 s0 p2 @- r  X; Q3 p5 l" u( H1 E; J; d) V& h' U
: i4 i/ Q9 [2 L3 B! l2 S
+ u; X+ j- |" @8 u9 a6 O: Y

: w3 K; v) W9 i请问您对 SW 二次开发怎么样,能否请教一些问题
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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