QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
系列零件设计表中草图文字有没有类似CAD中缩放比例的驱动参数?
5 V2 b  n& |4 S如何对草图中到文字进行参数驱动??
发表于 2010-8-25 12:37:19 | 显示全部楼层 来自: 中国江苏无锡
我跟你说。没有的。CAD没有内置这种功能。。另外文字也没办法转化成绝对的可约束性草图除非专门做这种字体,但是正如我们都知道,字体种类非常多。( ~9 C! u2 e7 h6 c
所以这种事,是非常难的。。在SW没有有效的解决方案前。暂时还只能手工运作多点事吧。。
) Q5 ~+ d, u1 b6 c$ R2 t8 i# ~; |! q 不过。这几天为了你这种事。就有人在研究啊。。。 ----------------------
$ o( c( k$ _4 E! }3 i算是有一点点的改观。。
1.gif

评分

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

查看全部评分

 楼主| 发表于 2010-8-25 16:26:07 | 显示全部楼层 来自: 中国江苏苏州
2# votasee 4 u1 G& \' y& w
- u6 I* c" s3 U5 P7 a% Q
; A) w5 }! A: S' M
3 U' h0 `. v' [% ]  J6 a
谢谢!这个是VBA做到吧?有源码吗?提供下载吗?能否学习下,自己做估计也能做得出来吧,只是不知道驱动系列零件到EXCEL到API
发表于 2010-8-26 16:24:50 | 显示全部楼层 来自: 中国江苏无锡
我觉得为了个小东西.还要带个EXCEL什么的..还要去驱动..很麻烦...
4 g: S/ v4 O& j* u1 U) [
& U' y! M" @3 u, s+ S3 L- n这种方法也是临时性,局限性很大.也没大用场....只不过对草图文字多的人稍微有点小用....8 Y6 D  Z5 u  ], J  v0 i* ^

3 a9 V3 p0 D6 \7 t' l4 f而且目前也感觉很不好用...所以暂时不打算番出.当然如果你喜欢,也可以去研究一下.安装目录下的APIHELP中的帮助文件...应该有收获的.
) i2 W# T1 N1 f) J2 k+ C, e# m4 h
- m8 y+ y" b- F有一小段代码你自己看看
  1.    
    2 l/ }5 \' v2 g8 r2 T
  2. Private Sub cmdAdjustTEXT_Click(Index As Integer)
    & d4 ^0 u8 F. m7 g
  3. If linkSW2 <> 1 Then Exit Sub, Z" n$ t( H) r
  4.         Dim sTXT As String
    6 G. o# ?- n+ o4 G5 I
  5.         Dim sel As SelectionMgr
    + n9 Y! s0 d" d) A+ p
  6.         Set sel = swDoc.SelectionManager: _* P) m  X3 l& ]# t( j
  7.         M = sel.GetSelectedObjectCount2 ~) U6 j8 @" R) e
  8.         ''//10是草图,14标注,15注解./ n, A- |! y2 n( d' M( ], X$ w
  9.         If M > 0 Then
    ( C; ?! w8 d/ ]% r
  10.             If sel.GetSelectedObjectType(1) = 34 Then0 B+ {% _( N$ M
  11.             Dim swSKT As SketchText: u: |9 n9 |) h0 A
  12.             Set swSKT = sel.GetSelectedObject(1)0 Q5 ?/ h6 A9 n; E2 O) U& \- o! L
  13.             Dim tf As TextFormat
      Y/ S- M4 x6 m: D2 Z" k
  14.             Set tf = swSKT.GetTextFormat0 w. ?1 o: h; D, H7 _/ a
  15.                 tf.CharHeight = tf.CharHeight + IIf(Index = 0, 0.0001, -0.0001)+ |7 @- z" s' k6 X1 V
  16.                 sTXT = Round(tf.CharHeight * 1000, 1) & "mm" & tf.CharHeightInPts & "#": Debug.Print "New=" & sTXT9 \% }/ g5 K3 s+ U
  17.                 swSKT.SetTextFormat False, tf4 ^( [$ |" r4 X' j1 N% t- H( m1 {* X
  18.         End If! r: |5 K6 z* R
  19.     End If0 v+ i! ?$ ~$ f5 g
  20. End sub
    $ ~& q3 |1 X. @" i! K
复制代码
其中LINKSW2是一面连接函数...你可以自己写或照样例实现...
5 `" B2 a* n+ Q4 N- M6 TINDEX是一个传入参数,用于控制增大还是缩小 ...

评分

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

查看全部评分

 楼主| 发表于 2010-9-3 08:29:37 | 显示全部楼层 来自: 中国江苏苏州
谢谢 ,找到个相关的例子
$ D1 i" Q' Y1 J0 ]SolidWorks API Help
9 c6 V% R4 [( V# G8 T, t6 O+ ~'---------------------------------------------------+ d6 O) Y; K: j1 ?
'; [5 L0 ]+ n/ ~
' Preconditions:3 n' E, r( r4 ]' Z4 I! i3 z9 {
'       (1) Part, assembly or drawing is open.
+ `% M6 Q3 S( H: D6 Y# x. \; ~'       (2) An annotation is selected.# a# v" L- [0 z; N3 L* J* f
'
" }2 B6 p+ i9 @3 T+ R' Postconditions: The text format of the selected annotation is changed.
( u( i& k7 ~; B$ X' O4 Z, M+ i1 U'/ G6 C, r! B. p0 g& i1 s
'----------------------------------------------------
8 k) b3 C) e( F/ COption Explicit
' z0 o9 P! J9 }0 D* _( l. V. c
+ k1 P9 |2 L: y- U. S2 a; i5 R; VPublic Enum swAnnotationType_e
' g" [: Y3 v* c( g! j    swCThread = 1
& K( ~) W; Y' D: i    swDatumTag = 2
( q$ s8 S# d  v7 M) B* M    swDatumTargetSym = 3+ B" V1 w, x9 L5 a7 O. S2 f
    swDisplayDimension = 43 t6 j7 ^4 Z+ P5 w3 c: m
    swGTol = 5
' G3 J6 z! u& f    swNote = 6
, f, T/ ?7 [1 J0 `2 S9 _. n    swSFSymbol = 7) B* d7 d- J9 ^9 Y; V& f  W  W
    swWeldSymbol = 81 z' j% W4 {* J1 |% o, v5 F" B$ x
    swCustomSymbol = 95 M, w" G! B- c3 O7 |! v
    swDowelSym = 105 {( j) y, C5 ?# G% {. O
    swLeader = 11
" S4 a2 ^# k9 D! O3 |    swBlock = 12$ o- x* h+ i6 ?% z; {
    swCenterMarkSym = 136 P2 x7 [1 s# j# ?$ y
    swTableAnnotation = 140 O4 ~7 b2 O# {) _) H4 b3 Q8 Z
    swCenterLine = 153 H. y2 D3 ~; e* c" r
    swDatumOrigin = 16
  p% M: K9 P# @7 XEnd Enum- o5 v) M) _, M$ k% Z' U& d# B1 D
( `2 p' A2 w7 u! D6 p3 G  F/ Z4 D* s
Sub main()
8 m9 U+ m: t" s7 L7 H5 n  O! x! ]' H
    Dim swApp                       As SldWorks.SldWorks
* u7 [6 ]- S" I    Dim swModel                     As SldWorks.ModelDoc2
. e( t  a% m& b+ w" P) V+ a* F3 D    Dim swSelMgr                    As SldWorks.SelectionMgr
; u! @" s5 j* c  D! P    Dim swAnnObj                    As Object: ^3 x! \/ k6 O
    Dim swAnn                       As SldWorks.Annotation
4 l' g1 t  z+ y# z    Dim swTextFormat                As SldWorks.textFormat
6 H3 ^! T1 u2 r" l    Dim i                           As Long
( E) p4 h, ~! ~$ R1 g1 I. i0 Z    Dim bRet                        As Boolean5 }, e( ^& d* m
3 I1 D! L- A/ `' J8 d
    Set swApp = Application.SldWorks. Q) h3 N8 D) Q* `, S  h2 K
    Set swModel = swApp.ActiveDoc
" D( K3 u5 V2 L3 B' {    Set swSelMgr = swModel.SelectionManager9 ^8 C) {* S4 _- g1 J( {( d1 ?
    Set swAnnObj = swSelMgr.GetSelectedObject5(1)
0 h* L* y7 H: p    Set swAnn = swAnnObj.GetAnnotation: Debug.Assert Not Nothing Is swAnn& z  A) h/ ], _8 \" f9 R( _

) h7 l9 i% w+ j- r- ]    ' Get text format information8 e/ @8 F/ z) i, [3 [5 C* @# M
    Debug.Print "File = " & swModel.GetPathName. `2 z3 j6 h: }6 C# Y& l
    Debug.Print "  " & swAnn.GetName & " <" & swAnn.GetType & ">", P3 p% @1 y5 n
+ M# U' s! Z  O! o/ \; \
    For i = 0 To swAnn.GetTextFormatCount - 1/ i! @) _; C8 y  @
        Set swTextFormat = swAnn.GetTextFormat(i)1 n) a4 S: c; S9 ^- r  o, N% A
8 Y7 h; A- I7 G: T) X9 H
        ' Change text to be 10mm high, bold, italic, and Comic Sans MS font face
7 Q# T0 B* L" G        swTextFormat.CharHeight = 0.01
& X% v) N: M5 k! Y+ S' Z& \1 y* {( @9 t: r; [6 W
        swTextFormat.Bold = True+ n. x  |, e' V, ?! ~/ R- ]% Z
        swTextFormat.Italic = True
& ]2 `, v0 P' r" L' T        swTextFormat.TypeFaceName = "Comic Sans MS"
+ k& ?4 A& D, G7 d/ Y' R5 d7 ^# ~, P) o/ H' e# y
        bRet = swAnn.SetTextFormat(i, False, swTextFormat): Debug.Assert bRet% Y: \4 |& ~; K6 L7 J5 V6 F, C
    Next
1 }: W$ z. G# Q% L" }8 QEnd Sub$ C* l. ?+ u; @- Z& P' k9 k! C
'---------------------------------------------------------* v+ A1 }: R9 b3 n0 Q8 A

4 }  P8 c6 }' U& V8 g2 z
) |# w1 ~! w; G/ l, U* S' O
4 x4 o# a' t# d: H/ b' @* }( p+ q) D% \. C9 ]! P

, k5 h5 E* C0 b8 U+ I  [请问您对 SW 二次开发怎么样,能否请教一些问题
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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