QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
系列零件设计表中草图文字有没有类似CAD中缩放比例的驱动参数?
! e9 a2 U0 l5 \4 v0 E如何对草图中到文字进行参数驱动??
发表于 2010-8-25 12:37:19 | 显示全部楼层 来自: 中国江苏无锡
我跟你说。没有的。CAD没有内置这种功能。。另外文字也没办法转化成绝对的可约束性草图除非专门做这种字体,但是正如我们都知道,字体种类非常多。
6 P6 W# W+ N: U  P2 h" {所以这种事,是非常难的。。在SW没有有效的解决方案前。暂时还只能手工运作多点事吧。。
0 d  [: V: e* s/ U* _+ V/ G8 w 不过。这几天为了你这种事。就有人在研究啊。。。 ----------------------
- w4 k% G% I- Z& J: r算是有一点点的改观。。
1.gif

评分

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

查看全部评分

 楼主| 发表于 2010-8-25 16:26:07 | 显示全部楼层 来自: 中国江苏苏州
2# votasee 0 h7 h% \6 j1 e( z! t8 g0 t

; Q7 K- _$ k" V6 d
! D- W6 ?2 A# B/ P: S2 w% w# ?, w" ^5 X! v2 I. q
谢谢!这个是VBA做到吧?有源码吗?提供下载吗?能否学习下,自己做估计也能做得出来吧,只是不知道驱动系列零件到EXCEL到API
发表于 2010-8-26 16:24:50 | 显示全部楼层 来自: 中国江苏无锡
我觉得为了个小东西.还要带个EXCEL什么的..还要去驱动..很麻烦...
: ]# R) @8 a% Z7 v# }. p! ^
! S3 Z2 ]8 s- f* Z$ J- {" U. A4 H这种方法也是临时性,局限性很大.也没大用场....只不过对草图文字多的人稍微有点小用....
- ~0 C# @4 g/ i  R" @
6 n+ G- [6 u; m, N- [而且目前也感觉很不好用...所以暂时不打算番出.当然如果你喜欢,也可以去研究一下.安装目录下的APIHELP中的帮助文件...应该有收获的.
. m$ U0 x3 ~2 f* x+ s9 K4 q: r: j. ~  g, X; A, O
有一小段代码你自己看看
  1.    
      e, Y3 u  t0 b3 X) O5 o
  2. Private Sub cmdAdjustTEXT_Click(Index As Integer)
    ) R: E/ @* |$ Y, H: |, t$ Z
  3. If linkSW2 <> 1 Then Exit Sub/ o' z  n  G9 F7 P7 b$ z) G" |5 t
  4.         Dim sTXT As String" T/ E* ^! q' q( [2 w
  5.         Dim sel As SelectionMgr
    ) Q+ c8 v) o8 p5 o! \/ q
  6.         Set sel = swDoc.SelectionManager
    9 {* q$ }; i0 U& }
  7.         M = sel.GetSelectedObjectCount
    # f0 w6 g7 G$ n+ n/ c) n
  8.         ''//10是草图,14标注,15注解.
    3 j. }" T  h) ]! T: [' J: j: U
  9.         If M > 0 Then
    " o8 `1 X: X: y  E; c& w5 {
  10.             If sel.GetSelectedObjectType(1) = 34 Then7 w7 J& y- i, N3 O$ n' q
  11.             Dim swSKT As SketchText
    , M. O4 K& b1 ?  q5 p
  12.             Set swSKT = sel.GetSelectedObject(1)
    / S2 J: _* ^' Q  `
  13.             Dim tf As TextFormat0 v; L; R; K2 `6 n, V, L- c$ u
  14.             Set tf = swSKT.GetTextFormat
    2 f  W( p" T8 C: H. O( j3 c
  15.                 tf.CharHeight = tf.CharHeight + IIf(Index = 0, 0.0001, -0.0001)( _3 m+ x1 K" M- C% L( \
  16.                 sTXT = Round(tf.CharHeight * 1000, 1) & "mm" & tf.CharHeightInPts & "#": Debug.Print "New=" & sTXT$ X! l2 V5 ~! f! j# k+ ]( x; t
  17.                 swSKT.SetTextFormat False, tf
    3 ^$ X% _/ Y* f
  18.         End If/ T7 W* a* Z6 i' {
  19.     End If( |1 O: a' V( z# j
  20. End sub- ]1 W; q: b7 `  ^% J. {5 @, R3 n
复制代码
其中LINKSW2是一面连接函数...你可以自己写或照样例实现...
1 |  `) g# q+ q) o% e: MINDEX是一个传入参数,用于控制增大还是缩小 ...

评分

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

查看全部评分

 楼主| 发表于 2010-9-3 08:29:37 | 显示全部楼层 来自: 中国江苏苏州
谢谢 ,找到个相关的例子
- E. K7 l# a+ F# x& J6 p$ f7 V  Q$ USolidWorks API Help
& ?, A! y; L+ [  Q'---------------------------------------------------3 D6 D" U1 d' s1 a8 b9 n' k
'$ i! C$ p% ]& G8 v* O6 k
' Preconditions:
* ?' ^6 @- n) Y/ p; R# w- y'       (1) Part, assembly or drawing is open.
  v# O2 ?! x& ?: [' Q# e7 }. C5 y'       (2) An annotation is selected.9 ^  ~7 ]7 v+ h
'
, `# }. w3 D) m3 o' y& q' Postconditions: The text format of the selected annotation is changed.# T( Q) S! Q# ]8 r6 f4 v
'
9 l1 w% Z$ Y( |+ G5 c3 N; \'----------------------------------------------------
% Z! r5 Z" _$ _( m3 w/ E- k0 p" iOption Explicit
; f1 B7 ~3 Z" f  n/ o: g
5 I7 T; F' [" K2 [) W9 V: q' u/ YPublic Enum swAnnotationType_e
3 e- q! T) D6 {    swCThread = 16 V( `: v( V/ O5 ?9 |
    swDatumTag = 2
; f/ }9 Z# u$ ~4 K6 i" A* I" t    swDatumTargetSym = 3; K1 n+ z" D, x6 a* r8 [3 c! N9 K
    swDisplayDimension = 4' C' e! s2 t1 `' E
    swGTol = 5% O, |3 n7 C  d/ q) v1 J* U9 h
    swNote = 6. \4 j2 |9 F( c% g2 U, Y  L
    swSFSymbol = 7
6 }4 }* L+ e3 d    swWeldSymbol = 8
+ i4 r5 ?" _1 B, j    swCustomSymbol = 9, j2 u" y0 i% ?
    swDowelSym = 10
" w$ o+ [# Y$ h    swLeader = 11
; ~" Y* k2 O  ~! a    swBlock = 12& o& V. A7 @8 L- |, n+ Q
    swCenterMarkSym = 13
4 X) G& B# a* @5 L9 E1 b    swTableAnnotation = 14. M! N& f0 p7 C& r) l4 X$ p2 J
    swCenterLine = 15
/ _, J: m1 I/ I5 w! j    swDatumOrigin = 16
3 Y! w. ~( P  d/ V' cEnd Enum- e- W) t+ D" I: H* Z; U: k6 e! z

$ C) s: u1 T/ _; f2 y2 XSub main(), F1 z7 y; V1 C' u/ u6 |

( B1 a' a/ x$ w8 Q+ K) j    Dim swApp                       As SldWorks.SldWorks, f( Z7 ]. L' [2 t  `; ]: H
    Dim swModel                     As SldWorks.ModelDoc2
. Z7 a3 x9 s8 F  L2 B! m2 Q  t    Dim swSelMgr                    As SldWorks.SelectionMgr
, Q2 ]% Y4 Y' v    Dim swAnnObj                    As Object8 U: p, v9 i8 }' i+ Y+ z
    Dim swAnn                       As SldWorks.Annotation
$ F% D& {1 {$ C: @    Dim swTextFormat                As SldWorks.textFormat
1 Q( s& |+ c  R5 m# u    Dim i                           As Long
* |2 y# V# S9 L6 Z: W    Dim bRet                        As Boolean
% N2 ~  ?4 C% Q* s! g) e
0 v$ @! k4 v1 r6 V' X$ q  r    Set swApp = Application.SldWorks
2 G" O4 L0 S; j3 |    Set swModel = swApp.ActiveDoc* {' @) T3 o+ K# O4 W
    Set swSelMgr = swModel.SelectionManager; m5 {/ U2 `' m# }+ i- X. [
    Set swAnnObj = swSelMgr.GetSelectedObject5(1)' _3 G: I# q2 X2 B+ c9 G
    Set swAnn = swAnnObj.GetAnnotation: Debug.Assert Not Nothing Is swAnn
% e3 ]6 j7 A+ G0 b" H) ?& z; _' Y7 Z& S
    ' Get text format information
6 `/ q' A4 Y5 `% h2 [    Debug.Print "File = " & swModel.GetPathName" ~9 G9 p9 x- h, Z
    Debug.Print "  " & swAnn.GetName & " <" & swAnn.GetType & ">"
5 y# w3 c8 K. E4 `$ r
# T4 Z' ?8 h2 Z$ s6 g$ {. e" T    For i = 0 To swAnn.GetTextFormatCount - 1( y1 v. S" @3 ~" S; ]1 F, {
        Set swTextFormat = swAnn.GetTextFormat(i)6 q1 V" {3 @! `) s
" H8 M' S! {1 p4 m- j2 x/ V
        ' Change text to be 10mm high, bold, italic, and Comic Sans MS font face
, R4 W- F' @  l/ a/ x+ @! G/ d, Y        swTextFormat.CharHeight = 0.01
6 Z$ f2 p% B0 e! p/ |- V% w8 T! \3 l$ f2 X. c: b
        swTextFormat.Bold = True  a- A( [6 b8 L/ H0 w1 J3 J8 z
        swTextFormat.Italic = True/ S* I8 S, Y/ t5 j3 x# x+ V3 C
        swTextFormat.TypeFaceName = "Comic Sans MS"
' v9 j" t" X, G+ Q7 h' R( ]5 X2 h
        bRet = swAnn.SetTextFormat(i, False, swTextFormat): Debug.Assert bRet
4 p# Y) C# i7 B( p* o/ v    Next
2 L" R# Y- |  k3 P8 S& KEnd Sub
" Q: F1 }% P$ R* E# C'---------------------------------------------------------
4 d4 U! {2 G: U; L5 p& a. I7 j4 o- s* ?

9 [% d; s% |4 q6 q$ c+ U: Y+ u- U' P2 y
& c$ W" [/ w* g

+ u; s  L$ C8 N" J* M请问您对 SW 二次开发怎么样,能否请教一些问题
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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