QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
系列零件设计表中草图文字有没有类似CAD中缩放比例的驱动参数?1 T2 w. [: L1 h. r/ Z
如何对草图中到文字进行参数驱动??
发表于 2010-8-25 12:37:19 | 显示全部楼层 来自: 中国江苏无锡
我跟你说。没有的。CAD没有内置这种功能。。另外文字也没办法转化成绝对的可约束性草图除非专门做这种字体,但是正如我们都知道,字体种类非常多。
! h# \- w9 K4 j0 B所以这种事,是非常难的。。在SW没有有效的解决方案前。暂时还只能手工运作多点事吧。。 ( k1 u7 T* X( A
不过。这几天为了你这种事。就有人在研究啊。。。 ----------------------
- d1 O3 k. i$ M2 r  L算是有一点点的改观。。
1.gif

评分

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

查看全部评分

 楼主| 发表于 2010-8-25 16:26:07 | 显示全部楼层 来自: 中国江苏苏州
2# votasee 2 L! `8 i4 g, p$ v- K! \
9 {4 `- ?2 K! x! ~1 j
9 z+ t+ L4 u* |/ a3 W, i6 x7 r" r* d

" V$ s; K/ p$ D谢谢!这个是VBA做到吧?有源码吗?提供下载吗?能否学习下,自己做估计也能做得出来吧,只是不知道驱动系列零件到EXCEL到API
发表于 2010-8-26 16:24:50 | 显示全部楼层 来自: 中国江苏无锡
我觉得为了个小东西.还要带个EXCEL什么的..还要去驱动..很麻烦...3 Q  k& d8 N9 c6 v5 J# X( p( Y* P
' ~' ~: f2 e# W  E' N
这种方法也是临时性,局限性很大.也没大用场....只不过对草图文字多的人稍微有点小用....
5 i9 t3 ^7 E% G" J% l
) A  |* [% Y6 |% ^* t) z而且目前也感觉很不好用...所以暂时不打算番出.当然如果你喜欢,也可以去研究一下.安装目录下的APIHELP中的帮助文件...应该有收获的.4 U* F' G/ Z/ G
: s: g& ]* ?0 j5 X3 ]3 T
有一小段代码你自己看看
  1.    
    ! Z6 l0 p! k) Y5 e: |0 r6 X& n
  2. Private Sub cmdAdjustTEXT_Click(Index As Integer): u+ [$ K, \$ w3 l
  3. If linkSW2 <> 1 Then Exit Sub$ N; i) O+ e/ L5 w' D4 {4 B- r! A
  4.         Dim sTXT As String
    $ Q! V  P4 i# d3 o5 h2 J% E& a
  5.         Dim sel As SelectionMgr
    # L! E4 i7 ~5 g2 Q& p$ O
  6.         Set sel = swDoc.SelectionManager* o( a- {: I! y& }
  7.         M = sel.GetSelectedObjectCount3 Z. K( v- G7 U' u# w$ L
  8.         ''//10是草图,14标注,15注解.; s# f7 Y) g" l1 X! C/ l
  9.         If M > 0 Then
    ! N8 Y0 Q& s! Q
  10.             If sel.GetSelectedObjectType(1) = 34 Then
    # T% q6 M- z$ E
  11.             Dim swSKT As SketchText9 ~, b4 j* c4 b7 m4 d$ |9 u
  12.             Set swSKT = sel.GetSelectedObject(1)% N6 T4 R4 X" B. r* d4 w
  13.             Dim tf As TextFormat* Y4 R1 V  ^6 Y# ^5 O/ z
  14.             Set tf = swSKT.GetTextFormat
      H# L; m* [6 B. k, I' L8 j
  15.                 tf.CharHeight = tf.CharHeight + IIf(Index = 0, 0.0001, -0.0001)
    , v, x9 b1 a! _1 D* R
  16.                 sTXT = Round(tf.CharHeight * 1000, 1) & "mm" & tf.CharHeightInPts & "#": Debug.Print "New=" & sTXT. ^, y( ~  {% s
  17.                 swSKT.SetTextFormat False, tf7 ]# @9 {' S6 S3 F( @
  18.         End If7 q; ]$ r% r: d: r( }
  19.     End If
    * x7 u  G6 z: e9 E
  20. End sub/ o) ]- W% C1 r- ^  r0 r* R
复制代码
其中LINKSW2是一面连接函数...你可以自己写或照样例实现...2 x& k  ~1 K' m! F+ O
INDEX是一个传入参数,用于控制增大还是缩小 ...

评分

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

查看全部评分

 楼主| 发表于 2010-9-3 08:29:37 | 显示全部楼层 来自: 中国江苏苏州
谢谢 ,找到个相关的例子
& G+ k4 S" G: W/ W/ m, m/ SSolidWorks API Help 4 d/ g8 a) S; y8 f" R, F
'---------------------------------------------------
* y+ v- D7 D0 Z# Z'( W9 U7 }9 X; Y. s
' Preconditions:
6 @& _5 S) H' B2 J'       (1) Part, assembly or drawing is open.
. B2 f1 U; K* l7 K% h- S* r. G'       (2) An annotation is selected.
% q( Q' ?7 ?/ g' G: s: G'- v& V1 L' P3 k& X
' Postconditions: The text format of the selected annotation is changed.
5 n1 T6 x7 t0 e/ `4 F+ c# g2 Z3 h'
6 E7 R4 i3 `% b5 D9 r2 h; a% E'----------------------------------------------------
' _& T& n5 s! m0 l+ S6 x5 v0 ^Option Explicit
; I; P( [$ |2 [' D+ p; G
8 G: _* r1 @- w( G5 cPublic Enum swAnnotationType_e
8 s# T7 H4 y7 S; V- ^    swCThread = 16 s8 Q8 G/ l, I" u! p
    swDatumTag = 2) l+ Y4 G; N1 j$ H4 p
    swDatumTargetSym = 38 ]  Z! P/ y; _1 b, F
    swDisplayDimension = 4
  o# {) u/ e6 N" k2 c; @    swGTol = 5
+ _: G# J; E) [$ Y: Z) t% g    swNote = 6+ e$ K) H( c" k) b8 m: J4 Q3 Y
    swSFSymbol = 7- k9 L) m- V) F5 d" x/ b& |
    swWeldSymbol = 8, E6 Y4 ]( Y2 s, X. e+ ?) u+ @- G
    swCustomSymbol = 9
0 }) V1 c' I0 G( F8 T! K    swDowelSym = 104 N% O+ i# o2 b0 v) k9 F
    swLeader = 11& M( [8 s/ C. h5 U5 r. c) ^
    swBlock = 122 l- O7 A8 T, _
    swCenterMarkSym = 13
+ [- d! v$ U* _( {+ b    swTableAnnotation = 14
; Y3 s) I$ i6 P/ |3 M& _    swCenterLine = 15
- N+ z6 G0 R/ a- O+ c3 n    swDatumOrigin = 16
: O; X8 g' H9 o; l" J. oEnd Enum
0 Z' t8 [% i) N3 S- _
; B6 z. u5 |+ Q) Y% E1 |Sub main()! J2 h$ c  g( ?+ s3 m( o3 D
; U; ^6 i* e1 I# U9 _( J% e
    Dim swApp                       As SldWorks.SldWorks3 \$ Z7 `- Q3 o" B9 c% O& S
    Dim swModel                     As SldWorks.ModelDoc2$ M% I7 k$ t* _) K
    Dim swSelMgr                    As SldWorks.SelectionMgr  f1 f  W* d; Z$ E" M' V
    Dim swAnnObj                    As Object8 I  U; I4 X' ?9 ?
    Dim swAnn                       As SldWorks.Annotation
: ]4 o$ A+ f! N7 B' K, T; \    Dim swTextFormat                As SldWorks.textFormat
8 S8 m( i; t& `9 X- J    Dim i                           As Long
$ T* \: {7 U; [9 C2 r7 v    Dim bRet                        As Boolean
. D1 F2 Y2 _0 m* r3 r. h* `( l& h% l
    Set swApp = Application.SldWorks
  W! i/ r$ V6 U6 h9 e    Set swModel = swApp.ActiveDoc
  y! S* ]3 Z# ]  \9 a% a    Set swSelMgr = swModel.SelectionManager
/ ?6 j$ A/ I8 d0 J+ N8 }    Set swAnnObj = swSelMgr.GetSelectedObject5(1)
/ _) m; r4 F" B, c    Set swAnn = swAnnObj.GetAnnotation: Debug.Assert Not Nothing Is swAnn$ F; ]9 T* R2 e
" p) ^: \# M( O, v( R
    ' Get text format information
# V: X' K# R0 ^    Debug.Print "File = " & swModel.GetPathName' C; y) q. O& E* ]. S" ]7 K; P
    Debug.Print "  " & swAnn.GetName & " <" & swAnn.GetType & ">"
% A( A* J% u1 O, z- m; w/ `( ^
! `" v& A% P' m" E2 A    For i = 0 To swAnn.GetTextFormatCount - 18 `/ `6 L6 _* Q: t7 M' Q2 o
        Set swTextFormat = swAnn.GetTextFormat(i)8 p; ]# Z5 Y5 B" f) Z7 o, |7 v
% N1 F/ C# R3 n" M# i( S9 V# ?* V
        ' Change text to be 10mm high, bold, italic, and Comic Sans MS font face
* E# a+ V4 O8 s" N# f" O        swTextFormat.CharHeight = 0.01/ g2 T. w0 t4 B2 e

( i. P) }- {9 i3 [+ A: w        swTextFormat.Bold = True
; r0 l9 z6 }+ q1 [2 ~7 d! }        swTextFormat.Italic = True
" h$ w) |# M1 Z& m1 z        swTextFormat.TypeFaceName = "Comic Sans MS"
+ G8 S0 H$ Y1 P; g) n- P4 e0 _
1 N/ B6 b4 r+ s7 A        bRet = swAnn.SetTextFormat(i, False, swTextFormat): Debug.Assert bRet9 a) m* b0 O, L! K& B
    Next
% e# a* R6 e) d' |End Sub& N0 a1 w) U; ?( [
'---------------------------------------------------------
# R! U% S: q  J1 \7 v) Z3 H
0 F' X2 ?& y* H  X6 r  k% q9 }' ^% l  q3 p$ U
, }, Z% W3 J: d- w
9 R9 I+ C8 {, ]6 W+ W% e

$ Q$ y# |8 p# l请问您对 SW 二次开发怎么样,能否请教一些问题
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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