QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
系列零件设计表中草图文字有没有类似CAD中缩放比例的驱动参数?2 Z0 Q, o5 N: \/ T! |: O
如何对草图中到文字进行参数驱动??
发表于 2010-8-25 12:37:19 | 显示全部楼层 来自: 中国江苏无锡
我跟你说。没有的。CAD没有内置这种功能。。另外文字也没办法转化成绝对的可约束性草图除非专门做这种字体,但是正如我们都知道,字体种类非常多。
+ k2 Q" P* r7 T+ |2 ?( R9 @  j( \2 l所以这种事,是非常难的。。在SW没有有效的解决方案前。暂时还只能手工运作多点事吧。。
$ J: ~$ Y+ h  i& ]8 s2 K9 b 不过。这几天为了你这种事。就有人在研究啊。。。 ---------------------- " h1 ]5 I( l; b3 R  ]3 B, D3 w, o( }
算是有一点点的改观。。
1.gif

评分

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

查看全部评分

 楼主| 发表于 2010-8-25 16:26:07 | 显示全部楼层 来自: 中国江苏苏州
2# votasee
' G: M1 s* _' D) p- P
, @; w& i( {% H' I8 a2 q( w  v1 B" J6 H/ g( U
0 @1 v( \, Y' I& R
谢谢!这个是VBA做到吧?有源码吗?提供下载吗?能否学习下,自己做估计也能做得出来吧,只是不知道驱动系列零件到EXCEL到API
发表于 2010-8-26 16:24:50 | 显示全部楼层 来自: 中国江苏无锡
我觉得为了个小东西.还要带个EXCEL什么的..还要去驱动..很麻烦...5 C( u9 `+ y: M- h6 X' c% ]

% r8 D  C8 t9 C, |+ E) O7 ?; }6 g9 O这种方法也是临时性,局限性很大.也没大用场....只不过对草图文字多的人稍微有点小用....
3 J* }# ?1 T3 n( g2 Z8 W* F' M" s6 c
而且目前也感觉很不好用...所以暂时不打算番出.当然如果你喜欢,也可以去研究一下.安装目录下的APIHELP中的帮助文件...应该有收获的.5 e6 K$ G# \5 G
; K. [: O& `4 X4 [
有一小段代码你自己看看
  1.    
    " G: O" u) ]& I8 }" I2 t9 ]
  2. Private Sub cmdAdjustTEXT_Click(Index As Integer)
    ( d6 s0 K0 |3 u. Q  v5 L
  3. If linkSW2 <> 1 Then Exit Sub
    5 a* o+ }9 H3 R2 T. J0 I7 F
  4.         Dim sTXT As String& l. `3 J  N0 `7 }9 C
  5.         Dim sel As SelectionMgr! h; P% b# Q" R: T. D" F6 c
  6.         Set sel = swDoc.SelectionManager
    * K* W3 c' b8 [8 U9 q
  7.         M = sel.GetSelectedObjectCount
    " I, g8 u0 ~- A" Y/ @
  8.         ''//10是草图,14标注,15注解.
    ! J: G' b  R- Z$ h1 Y
  9.         If M > 0 Then
    ' B' w) v+ v& n# M: w# X5 J
  10.             If sel.GetSelectedObjectType(1) = 34 Then9 N, W* v5 J, G+ W- w
  11.             Dim swSKT As SketchText
    4 V4 U+ w! y' j' u
  12.             Set swSKT = sel.GetSelectedObject(1)
    1 W7 P6 N! v1 O, ~
  13.             Dim tf As TextFormat
    * ]/ e/ ~; a: U7 ~
  14.             Set tf = swSKT.GetTextFormat
    1 _- }" _1 }  n* x# V
  15.                 tf.CharHeight = tf.CharHeight + IIf(Index = 0, 0.0001, -0.0001)
      \/ f& o$ ^5 ]& O
  16.                 sTXT = Round(tf.CharHeight * 1000, 1) & "mm" & tf.CharHeightInPts & "#": Debug.Print "New=" & sTXT) Q/ T# s# `& z2 g+ E1 g% S9 X
  17.                 swSKT.SetTextFormat False, tf: o% `3 s6 y0 _. V
  18.         End If
    7 E2 L5 m0 k. J0 q# c, Z
  19.     End If- ^" H. e0 j0 L& |
  20. End sub
    / y) @) u4 _' M1 ^7 l
复制代码
其中LINKSW2是一面连接函数...你可以自己写或照样例实现.../ |- A: a& i3 p
INDEX是一个传入参数,用于控制增大还是缩小 ...

评分

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

查看全部评分

 楼主| 发表于 2010-9-3 08:29:37 | 显示全部楼层 来自: 中国江苏苏州
谢谢 ,找到个相关的例子
) F- D$ l: X; I5 Y: J9 @& PSolidWorks API Help / Q. ~, w- Z. t6 A  G
'---------------------------------------------------2 l2 {+ ~( v6 }: o+ m
'
. k4 V( q4 H  y, e/ N' Preconditions:) V, i5 r; x2 J7 R0 t% a
'       (1) Part, assembly or drawing is open.) r8 G% ?" m( K6 c5 D2 u+ v
'       (2) An annotation is selected.
- \& A/ g  D+ W- h" e8 O'
: @) H5 n! o3 W+ C  \' Postconditions: The text format of the selected annotation is changed.4 b. v  K# z3 Z5 H* U
'
; Y2 x. e- }8 M'----------------------------------------------------3 h$ n  L/ H9 e  k1 e9 f% F) p& s- b
Option Explicit
' l; M+ D' r' J: t( [" y6 n8 O! W9 n; A. E8 W0 e$ E6 [/ Q+ n
Public Enum swAnnotationType_e4 P2 \: [2 K, f) N
    swCThread = 1# a% q1 @  J' x  b
    swDatumTag = 2
4 ^: a, E7 ]( ^- T" f1 F- d    swDatumTargetSym = 3# r( u5 X/ k; ^: h7 o+ ?! \5 O
    swDisplayDimension = 4
+ J/ E; ]# [5 G8 I' q: G    swGTol = 5
# m/ K) s$ L0 J$ m' A( O5 c0 c) H% m    swNote = 6! j5 E) W* J; l2 M
    swSFSymbol = 7
* d9 @* @, ^; i& x. N2 c% k    swWeldSymbol = 8
8 v1 |1 B; ]0 L, r; W    swCustomSymbol = 9; M. p! l% N$ D8 ]. @; e$ n
    swDowelSym = 10
4 A( `- K. K- Y+ o& R& u/ y    swLeader = 11
/ u2 B/ Q' |) ?6 G    swBlock = 124 D* n  F' C% T. p0 C+ V
    swCenterMarkSym = 13
# p' C6 f, c3 |) b1 Q    swTableAnnotation = 14# g& {! b9 d) d
    swCenterLine = 15- r+ _& Y! K7 Q2 r0 k
    swDatumOrigin = 164 `, N3 C6 M8 l  g( Y; G* }4 ~$ u
End Enum# C9 \, v( F& u

8 p: A. V9 D  Y1 ^9 p3 _. lSub main()9 U/ Y4 }% _6 w& Q8 u& z/ Y# u
& c6 }, j3 s9 e0 {% D! k& g; M# Q- F
    Dim swApp                       As SldWorks.SldWorks
: B1 R$ C" C, Q8 L9 o9 _) ?    Dim swModel                     As SldWorks.ModelDoc2
# G% N# M, U9 B5 u" C    Dim swSelMgr                    As SldWorks.SelectionMgr
/ b+ }& ^1 P5 j" v; a# @& A    Dim swAnnObj                    As Object- ~% J, [- A9 K/ J+ k- m
    Dim swAnn                       As SldWorks.Annotation  d; R8 x! v# V2 O5 l# v
    Dim swTextFormat                As SldWorks.textFormat& [$ K" J4 j+ f' Y4 z5 C
    Dim i                           As Long: c' w: `1 {0 Z' T) N4 P. K5 A
    Dim bRet                        As Boolean  r- l" G6 N3 r  a
' ^/ C4 P# v5 ]/ B, d$ J+ X! F
    Set swApp = Application.SldWorks
1 a* h# z& {  g* A, F; h0 D# y    Set swModel = swApp.ActiveDoc  _' H4 K0 p! Q8 y3 h/ Y; }  d
    Set swSelMgr = swModel.SelectionManager
7 K2 C7 F8 D; H* V! Y: H( W- b    Set swAnnObj = swSelMgr.GetSelectedObject5(1)
# r4 R# @2 O, X( s) z3 m. E    Set swAnn = swAnnObj.GetAnnotation: Debug.Assert Not Nothing Is swAnn+ h) O* y9 s6 N
8 N9 z2 u- O/ @9 |1 X: t1 h
    ' Get text format information4 K- X" ^  Q1 B. Q% C0 |) E
    Debug.Print "File = " & swModel.GetPathName
7 c, \4 m/ k  _5 L9 n& ?6 x    Debug.Print "  " & swAnn.GetName & " <" & swAnn.GetType & ">"
, O8 c% S4 E9 `: T9 A/ n: H
  L% |! q% j1 \    For i = 0 To swAnn.GetTextFormatCount - 1
! U3 O& H4 ^4 o5 Y        Set swTextFormat = swAnn.GetTextFormat(i)
' y9 t  j1 @- ]( Y( {1 m/ N+ P; E1 r- P! v( V
        ' Change text to be 10mm high, bold, italic, and Comic Sans MS font face
2 j5 A7 Z5 K6 w7 N2 K/ H        swTextFormat.CharHeight = 0.01
8 H2 H5 O) P- ~; t$ |$ O( F' `: g& r; d+ O2 F3 m5 J
        swTextFormat.Bold = True
3 E" ?) {* V  t; h* o        swTextFormat.Italic = True6 W/ d5 K- p1 _
        swTextFormat.TypeFaceName = "Comic Sans MS"
3 d, `7 U* L% O2 |+ @' `9 J! u2 g: w1 \6 \2 _, J
        bRet = swAnn.SetTextFormat(i, False, swTextFormat): Debug.Assert bRet
3 z2 t; M8 z) f    Next) _  S; e* ~0 n' w, ?
End Sub2 q1 W% a3 j, A! t9 O* f. B
'---------------------------------------------------------, T' G/ B9 J: H9 Z+ ]

1 y1 d6 F0 n- ?; D' d* q5 }3 w7 {! z! ~% c' l- |
" B& {: Z& ?+ e! n4 `
8 H) S1 `. b0 l: W) D2 Q! Z7 G

- Z6 R4 `. B( `6 |" f请问您对 SW 二次开发怎么样,能否请教一些问题
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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