QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
系列零件设计表中草图文字有没有类似CAD中缩放比例的驱动参数?
9 a/ c+ c" M/ F7 `9 |8 h  v  {# b- w如何对草图中到文字进行参数驱动??
发表于 2010-8-25 12:37:19 | 显示全部楼层 来自: 中国江苏无锡
我跟你说。没有的。CAD没有内置这种功能。。另外文字也没办法转化成绝对的可约束性草图除非专门做这种字体,但是正如我们都知道,字体种类非常多。
' x) ]) \/ t2 ?2 T/ O* Z所以这种事,是非常难的。。在SW没有有效的解决方案前。暂时还只能手工运作多点事吧。。 5 x. g0 Y8 K3 D
不过。这几天为了你这种事。就有人在研究啊。。。 ---------------------- ( @7 j# @. V: J
算是有一点点的改观。。
1.gif

评分

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

查看全部评分

 楼主| 发表于 2010-8-25 16:26:07 | 显示全部楼层 来自: 中国江苏苏州
2# votasee
  S. r3 {" Q3 z- M% k3 C2 T! g+ \2 O7 M4 w
' u! c- ?1 h, @! r$ l* g

2 w- l2 f$ J6 a; h$ E谢谢!这个是VBA做到吧?有源码吗?提供下载吗?能否学习下,自己做估计也能做得出来吧,只是不知道驱动系列零件到EXCEL到API
发表于 2010-8-26 16:24:50 | 显示全部楼层 来自: 中国江苏无锡
我觉得为了个小东西.还要带个EXCEL什么的..还要去驱动..很麻烦...2 ?2 \8 o: Y3 |( X" y( |

* ^2 P1 Q  A9 W/ C5 u这种方法也是临时性,局限性很大.也没大用场....只不过对草图文字多的人稍微有点小用....
; b; t9 Z6 J! W
" B2 s8 ?  Z. Y# V而且目前也感觉很不好用...所以暂时不打算番出.当然如果你喜欢,也可以去研究一下.安装目录下的APIHELP中的帮助文件...应该有收获的.
, T' q, ^1 o) ^. B/ V6 r* t( {  o
有一小段代码你自己看看
  1.    
    6 `% d+ Q# ~0 F$ q* A
  2. Private Sub cmdAdjustTEXT_Click(Index As Integer)/ g1 [3 O' m' f) g9 y
  3. If linkSW2 <> 1 Then Exit Sub
      E+ ?; F: C; a5 U: ^
  4.         Dim sTXT As String, @" p6 H  a: b8 q5 S1 O
  5.         Dim sel As SelectionMgr" d7 S0 T# i& @7 h% a
  6.         Set sel = swDoc.SelectionManager
    - w6 f; v+ [$ e, ?9 n: j  z8 d; `3 v
  7.         M = sel.GetSelectedObjectCount! J& E9 X- Y5 F) R% h+ B" u
  8.         ''//10是草图,14标注,15注解.
    / U& k- h$ Y& L1 R0 T* X
  9.         If M > 0 Then* t* m/ v. U1 F+ |+ ]9 }. N
  10.             If sel.GetSelectedObjectType(1) = 34 Then
    ; O: X& k# D& r. h' D! J6 G% Q# E) l
  11.             Dim swSKT As SketchText
    * ]% {# Y! v! E: c: i/ X* L
  12.             Set swSKT = sel.GetSelectedObject(1)
    5 d( e: Q2 D' f  C: `
  13.             Dim tf As TextFormat$ P# g& e5 }* r3 r, ?% k
  14.             Set tf = swSKT.GetTextFormat
    8 B; U' E! U( `
  15.                 tf.CharHeight = tf.CharHeight + IIf(Index = 0, 0.0001, -0.0001)
    5 b2 x& _( i8 v4 u  p
  16.                 sTXT = Round(tf.CharHeight * 1000, 1) & "mm" & tf.CharHeightInPts & "#": Debug.Print "New=" & sTXT4 w! H  R0 U5 ]3 |& T: V
  17.                 swSKT.SetTextFormat False, tf+ q3 T" l" w: }! T& g5 j
  18.         End If
    4 Q& Q  L5 C& y, G' ^% N8 d
  19.     End If, q# {& Y  q4 p6 N: r1 w
  20. End sub' s  i- F( L2 M' b
复制代码
其中LINKSW2是一面连接函数...你可以自己写或照样例实现...
; k8 _' f) M. b, X) t2 lINDEX是一个传入参数,用于控制增大还是缩小 ...

评分

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

查看全部评分

 楼主| 发表于 2010-9-3 08:29:37 | 显示全部楼层 来自: 中国江苏苏州
谢谢 ,找到个相关的例子
  Y" ~! J# ]5 f) {1 kSolidWorks API Help $ @% W: ~5 v$ \" U, d) U& B% p
'---------------------------------------------------3 `- x- j& O& y
'! g5 Z' L! f3 K1 h
' Preconditions:: Q4 ~! ^5 c2 ?8 G) B0 I7 t/ e
'       (1) Part, assembly or drawing is open.9 M1 C3 V5 C1 \( c$ K* W
'       (2) An annotation is selected.( V0 x2 Y) ~. p: h4 F! Y/ m
'. I  }/ e  L3 ?: c
' Postconditions: The text format of the selected annotation is changed.( ~. O4 i/ [' l' P  [. e% }
'* M. z: H% g% r0 E" |) C# U
'----------------------------------------------------
; T$ D3 j. k7 }! g- l" D4 L, S' cOption Explicit
2 e3 q  a- l% e; T9 h5 D
/ J9 i  h, Z- \; |* G% [! ZPublic Enum swAnnotationType_e  h8 M4 @0 T4 V% J
    swCThread = 1
) q1 K( U3 ?  ~' w    swDatumTag = 2
1 t5 ~4 }' c% s- S! M    swDatumTargetSym = 38 J& B+ B' I" t* }9 g7 D
    swDisplayDimension = 4
, l1 E) B9 z8 b! C    swGTol = 53 @  o0 t! @" o) ]! n' j$ o
    swNote = 6
7 P4 e1 \% [* |* x7 R! h3 u, G    swSFSymbol = 7
# u0 q" `4 F) w$ q+ }+ M$ K    swWeldSymbol = 8
. F/ F' ~0 ?) d  M+ _0 w    swCustomSymbol = 9
% t3 \9 O$ Y& e4 G% Q# b    swDowelSym = 10
: t: L, N% ~, r. I+ [8 f    swLeader = 11
+ _* l, O; o0 P    swBlock = 12
- p/ M* Q" U9 X2 ^- D    swCenterMarkSym = 130 k7 m/ l4 d/ O
    swTableAnnotation = 141 B0 j! `& N$ c& x
    swCenterLine = 15
, D' z7 r) u% c8 C* }8 V" z3 O( \! f2 Y    swDatumOrigin = 161 T% N0 l5 l" o5 {; S
End Enum
: a; V5 k  \- n5 Q1 O
' T2 I$ S$ B# Z8 z. wSub main()
, U& b1 ]" l: k: R7 p" d. S0 ?
    Dim swApp                       As SldWorks.SldWorks
! E6 l% l  p/ @: k0 J    Dim swModel                     As SldWorks.ModelDoc2
8 v5 O6 {* |  s3 T3 x* g    Dim swSelMgr                    As SldWorks.SelectionMgr7 L& m  U; t& B* w
    Dim swAnnObj                    As Object' b$ r; R: d" g; L) X2 w$ y
    Dim swAnn                       As SldWorks.Annotation
% a$ c' ~$ C# R$ L3 i$ Z9 O    Dim swTextFormat                As SldWorks.textFormat0 T# K: b1 K) i* f( G' f
    Dim i                           As Long, \2 w! y. H0 I2 L; x- A
    Dim bRet                        As Boolean1 i( n4 Q* r0 Z! p# c

  \3 N* ?' i3 y8 U0 M4 }/ Q    Set swApp = Application.SldWorks
9 o  \. k* J, U5 q- o  y& L    Set swModel = swApp.ActiveDoc
7 G8 l+ Y6 y. d( r6 ^& n$ O    Set swSelMgr = swModel.SelectionManager
6 a$ E3 k' y. C$ ~" o0 z: \    Set swAnnObj = swSelMgr.GetSelectedObject5(1)
7 p2 z" z7 X; o: b: P, l* r# b    Set swAnn = swAnnObj.GetAnnotation: Debug.Assert Not Nothing Is swAnn9 M3 q1 V( e5 s" u

& D  A6 C8 b/ F' }( b1 S: m9 M. M4 p    ' Get text format information; s9 K+ y$ Y! |: B; _
    Debug.Print "File = " & swModel.GetPathName' c. `$ \; P8 y
    Debug.Print "  " & swAnn.GetName & " <" & swAnn.GetType & ">"
  V) }; l3 ^$ S/ g& {* n* f8 ~/ N8 k; v0 @) f' l* B
    For i = 0 To swAnn.GetTextFormatCount - 1
6 Z2 Y; P) Y6 d        Set swTextFormat = swAnn.GetTextFormat(i)
( X! v: \; H0 s) E, A" w" u( C! z4 {$ G
        ' Change text to be 10mm high, bold, italic, and Comic Sans MS font face+ @2 z- ^, U( T& U  Z) V
        swTextFormat.CharHeight = 0.01
# }7 \6 `# N6 ~9 L: n- X1 H( b) D7 t8 Q' F
        swTextFormat.Bold = True- y6 ?  F7 _" h7 ^  S, w1 Z9 {. U* E4 t
        swTextFormat.Italic = True; x9 s9 T- ^# Y
        swTextFormat.TypeFaceName = "Comic Sans MS"
' `+ k$ |" N* C. B, L0 K
* X6 a" X0 L% P: O* R9 F8 T        bRet = swAnn.SetTextFormat(i, False, swTextFormat): Debug.Assert bRet
+ z9 j- g5 M2 v8 K: d8 t- _' X/ }4 ]    Next1 S: R5 ^3 B8 m. i# W, Z
End Sub
' n" N. I% n3 }. N& v'---------------------------------------------------------
1 g  A% a: j* Q. l
' a2 J" o8 E! Z: p  F
2 z/ F) \9 V: N8 a8 t9 {) z9 Z' a: J, F2 K5 |7 T' @# j+ h
& v; {- B  _' `7 a$ e  |: R2 w) j7 t
- V) I% s5 ]  O6 L  Z
请问您对 SW 二次开发怎么样,能否请教一些问题
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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