QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
系列零件设计表中草图文字有没有类似CAD中缩放比例的驱动参数?* b8 g# A" l$ g! _  i: l
如何对草图中到文字进行参数驱动??
发表于 2010-8-25 12:37:19 | 显示全部楼层 来自: 中国江苏无锡
我跟你说。没有的。CAD没有内置这种功能。。另外文字也没办法转化成绝对的可约束性草图除非专门做这种字体,但是正如我们都知道,字体种类非常多。
, ~8 V4 S/ g6 N1 z! O所以这种事,是非常难的。。在SW没有有效的解决方案前。暂时还只能手工运作多点事吧。。 0 s1 Q( }. B4 M! s& |  M+ Z  t( L
不过。这几天为了你这种事。就有人在研究啊。。。 ----------------------
5 n8 s; e, p3 _- T2 E1 |算是有一点点的改观。。
1.gif

评分

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

查看全部评分

 楼主| 发表于 2010-8-25 16:26:07 | 显示全部楼层 来自: 中国江苏苏州
2# votasee
- O$ ?1 _- ]9 C0 L9 E" C' \) J7 l; i8 P; f$ _4 U

2 q2 H7 F. @. \% o7 ]# e. j6 F" ]5 b$ M" S  @4 W+ j! n6 V+ s
谢谢!这个是VBA做到吧?有源码吗?提供下载吗?能否学习下,自己做估计也能做得出来吧,只是不知道驱动系列零件到EXCEL到API
发表于 2010-8-26 16:24:50 | 显示全部楼层 来自: 中国江苏无锡
我觉得为了个小东西.还要带个EXCEL什么的..还要去驱动..很麻烦...6 ^* b, r: Q+ }( x

- G: L  U9 c# f1 o1 M' B# q! r* b这种方法也是临时性,局限性很大.也没大用场....只不过对草图文字多的人稍微有点小用....$ c3 _+ y" h  r
' L* v" V4 U, A% P) \
而且目前也感觉很不好用...所以暂时不打算番出.当然如果你喜欢,也可以去研究一下.安装目录下的APIHELP中的帮助文件...应该有收获的.
' N' Y/ ?1 M4 L
/ B* t, C9 y+ h$ N. {+ \) n有一小段代码你自己看看
  1.     . J( J3 c" S# y# o# _) V5 d
  2. Private Sub cmdAdjustTEXT_Click(Index As Integer)
    " \( m" o2 ^+ e/ o8 n
  3. If linkSW2 <> 1 Then Exit Sub) g( D* O# r( }
  4.         Dim sTXT As String
    - k) K# ?( q" T
  5.         Dim sel As SelectionMgr& X, @/ ?1 l7 y# J( Y* ]
  6.         Set sel = swDoc.SelectionManager
    4 A1 q' L) Z/ U, a1 ^
  7.         M = sel.GetSelectedObjectCount3 C8 j! v% W" j0 ]. ]
  8.         ''//10是草图,14标注,15注解.
    5 m( O& |  v7 p8 y' ^% M9 t
  9.         If M > 0 Then
    $ ?. _; i0 ]5 D' |- X
  10.             If sel.GetSelectedObjectType(1) = 34 Then: V1 m! b+ t. m/ ?0 [8 C
  11.             Dim swSKT As SketchText
    3 i) z* e" `$ }2 x) c0 g
  12.             Set swSKT = sel.GetSelectedObject(1)
    , ?4 g$ R7 R3 b5 a/ K
  13.             Dim tf As TextFormat
    " H. g; j& L3 W) K
  14.             Set tf = swSKT.GetTextFormat
    ; A0 h# H8 Q  e5 v
  15.                 tf.CharHeight = tf.CharHeight + IIf(Index = 0, 0.0001, -0.0001): o! N1 S! ]; c  X. E3 Y9 k
  16.                 sTXT = Round(tf.CharHeight * 1000, 1) & "mm" & tf.CharHeightInPts & "#": Debug.Print "New=" & sTXT
    : T" m8 ^% w0 j! `' G
  17.                 swSKT.SetTextFormat False, tf  j" Y  S8 w0 K4 y1 v
  18.         End If
    % _; }3 ^, u/ E0 a" Z
  19.     End If
    8 W6 [  \! f% \3 o$ v; D
  20. End sub
    * W( p; \7 g0 t6 ~* \# r
复制代码
其中LINKSW2是一面连接函数...你可以自己写或照样例实现...
: |$ [* o: X0 H! _" e: h1 B7 o4 cINDEX是一个传入参数,用于控制增大还是缩小 ...

评分

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

查看全部评分

 楼主| 发表于 2010-9-3 08:29:37 | 显示全部楼层 来自: 中国江苏苏州
谢谢 ,找到个相关的例子
+ ~1 |; Z+ B3 Z1 m8 ]SolidWorks API Help
" R2 B: C# ?# f8 b0 P& [. I( B9 B'---------------------------------------------------: q5 n: U$ y8 _; `6 `5 F# `
'
" [5 _- d3 w- h+ C8 X' Preconditions:
, w# o' b& c+ K- C' d) l2 r'       (1) Part, assembly or drawing is open.
" j- ?2 I5 b. k  {, U, q7 P2 Z'       (2) An annotation is selected.
! W, ~! ~  q6 H3 [/ `'
# a6 [' Q! U: D0 T8 M4 g" O! H' Postconditions: The text format of the selected annotation is changed.
$ V. i7 {/ h1 {0 N( q'2 g  ~0 O8 |9 E% }2 @
'----------------------------------------------------# a* f# z1 B$ G3 p- I
Option Explicit* x8 g2 g7 c1 b# A) X8 t$ ~" y

$ t5 [+ R: K1 W& Q% n0 `$ jPublic Enum swAnnotationType_e! R) h( o2 D  G; f0 s; E( r
    swCThread = 1
% B" C1 S4 \; O  H2 T! ^    swDatumTag = 2
% U3 @9 p) C2 X% A* @7 l: e    swDatumTargetSym = 3
. S* O, \$ B1 D9 t1 _% J# R    swDisplayDimension = 44 I! v* s+ d; G6 T- @# K% H
    swGTol = 5
% L6 ^$ c  E1 r. }+ @0 T    swNote = 6
2 I# F: H4 d: {    swSFSymbol = 7
1 j9 J9 W& Z' y    swWeldSymbol = 8
; J' `/ S$ \: ?/ _7 Y" [, h    swCustomSymbol = 9/ C( z. H. ]  s% W, Y1 Q" h7 f6 x
    swDowelSym = 10) |, y* r7 H' U0 K1 s
    swLeader = 11  `( P1 ^* |. f% d5 {& r) f) o
    swBlock = 12) _5 H7 j& P0 @9 w
    swCenterMarkSym = 13
- V8 c; _6 Z1 V    swTableAnnotation = 14
- u; g. f6 S! S, `    swCenterLine = 15* A. V( [, d! j1 D2 q9 M3 t) j5 }
    swDatumOrigin = 16
# C; ^. j: h7 F6 x0 ?End Enum/ y, m- A4 ?9 Q$ E

4 {7 l; X2 T  m* Q' O& }9 }: mSub main()( k4 `( H' @: i" ~3 |
. Z( U* ?$ c; o
    Dim swApp                       As SldWorks.SldWorks
4 V/ x* l9 S. r3 j6 [) n5 G    Dim swModel                     As SldWorks.ModelDoc2: @( P5 N6 N3 h) t3 R4 B" ?, N
    Dim swSelMgr                    As SldWorks.SelectionMgr
( G3 i* @1 M% Z    Dim swAnnObj                    As Object
4 o1 V# L5 D+ n4 a; s$ V    Dim swAnn                       As SldWorks.Annotation
+ w" O% o4 y* r" w. A$ H* @9 T& Q    Dim swTextFormat                As SldWorks.textFormat
$ Y# l) ]5 G+ p  W6 Y: s' f' S    Dim i                           As Long
3 p* v& i$ I- M4 a1 |0 @: T! i$ i    Dim bRet                        As Boolean
8 f2 @& ^3 ~, ]6 @
+ m; B: c! t8 _; w. d    Set swApp = Application.SldWorks
: T* H, l. d9 O    Set swModel = swApp.ActiveDoc
) s& y* b1 h) C9 K6 }    Set swSelMgr = swModel.SelectionManager
) b' Y* J4 u7 a2 {" H5 Q, f    Set swAnnObj = swSelMgr.GetSelectedObject5(1)5 S$ m+ U/ ?6 }/ ^5 i) W
    Set swAnn = swAnnObj.GetAnnotation: Debug.Assert Not Nothing Is swAnn6 H8 O) q+ O* c, e! m3 Z: u; g
* v8 A! C# ?1 J; u- c; D- x& B# u% @
    ' Get text format information
' _" B0 d! O4 r1 Y    Debug.Print "File = " & swModel.GetPathName
1 y4 d; L- g+ I    Debug.Print "  " & swAnn.GetName & " <" & swAnn.GetType & ">"# S$ i: d9 w1 e3 _3 G

: b+ |3 r6 o: b  C' j  I    For i = 0 To swAnn.GetTextFormatCount - 1
" h) O/ j/ F# a: @+ _6 u0 J. B/ I: P. \        Set swTextFormat = swAnn.GetTextFormat(i)4 X" `4 L. E) C4 d" w8 y' d$ U8 k

2 C- f# {8 ^: q9 a& L, ~        ' Change text to be 10mm high, bold, italic, and Comic Sans MS font face
6 s* N( N9 _# G7 U5 h        swTextFormat.CharHeight = 0.01
6 ^9 ]9 m* I/ k9 I
  T/ O9 L, _$ s+ ^6 u' \        swTextFormat.Bold = True
6 u; Q& t  r8 z) L4 t5 E; S  \$ S        swTextFormat.Italic = True$ F) c7 f/ \: j5 o4 @( W
        swTextFormat.TypeFaceName = "Comic Sans MS"
: L; _$ |# {" ]+ X/ ?+ O% R8 R6 X/ V7 i
        bRet = swAnn.SetTextFormat(i, False, swTextFormat): Debug.Assert bRet! d2 F3 e1 n9 o0 l  B% U" u1 f, }
    Next
, u' c6 S' i( NEnd Sub
; i, w! J1 P. a# R9 p4 H6 R! ]'---------------------------------------------------------/ |' o. {( q! ]' B% B/ v8 z
/ @+ k" ^; @8 K8 n( z# |" ~: {* B
" q. v8 V7 X9 H3 f6 @& k

4 D7 o; a5 ^2 i& t/ d6 c+ O0 n, n& G5 f, c# u
9 g% b: G  a7 o6 h" S8 H
请问您对 SW 二次开发怎么样,能否请教一些问题
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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