机械必威体育网址

标题: 分享两个宏,有详细注解,可尽情修改使用,代码也一起放了。 [打印本页]

作者: tg-000057    时间: 2021-1-13 14:11
标题: 分享两个宏,有详细注解,可尽情修改使用,代码也一起放了。

6 S7 e# l: j2 `工程图转格式:, F8 e7 ~* z/ Z# C3 d" o; V

- U6 ~7 u* z0 y6 I! V& @2 ^& g9 |2 W1 c& |/ w
Dim swApp As Object
% ?& y5 A& \/ e0 p- DDim Part As Object: ?3 T9 l4 z( P6 i
Dim Filename As String
/ ^0 S" w  t& V- A4 oDim No As Integer
. }* ^+ f7 S8 e* i& H5 Q# ^, I; IDim Title As String          '以上设定变量
/ K8 v- B/ L5 P" S# JSub main()
, H7 a  d; e7 \Set swApp = Application.SldWorks
7 W5 k5 c" J$ w. @2 K: m3 mSet Part = swApp.ActiveDoc                                                  '以上交换数据, G3 w: c3 m# F" q3 g
Filename = Part.GetPathName()                                               'Filename为文件名
0 F# [% l4 v- T/ xNo = Len(Filename)                                                          'no为工程图文件名字符串总数9 x! J4 x, ~: w" [7 F( ~
If No > 0 Then                                                              '当NO大于0时(转换格式名称是工程图名称,故要先保存工程图才可转换,工程图未保存无名称,无字符串,不可进行一下步)
9 N8 h' G' @  k# L9 `% @1 AFilename = Left(Filename, No - 7) + "." + Right(Filename, 1)                '字串符操作,no-7为去掉工程图后缀名,"."+ right(filename,1)为增加后缀名最后一个字母作为识别,用于区别客户来图,可不要
- q/ l2 W) O9 }. {- z$ @Part.SaveAs2 Filename & ".dwg", 0, True, False                              '输出需要转换的格式文件,已有文件则自动替换,不提示,(有些格式文件在打开状态中不可替换,替换不成功也不提示)* _* Y; I5 S, y2 G3 c
Part.SaveAs2 Filename & ".pdf", 0, True, False! O7 C& e* p+ ?5 C: c, X  B
End If/ z) m3 a2 C) G
End Sub
% k' m2 A) M; R# c' `( q* ~  p2 L3 Z6 D& e! f: D  ?
- S( z3 \9 F6 \* t/ O" N5 e4 v
& Q# l8 m2 [3 L+ ]8 f' j( w
属性改写宏:
& t2 p* W# }" Q5 ]
, y4 J9 m% @: F  T) Q" r. C* g' w7 ]
/ V# B5 L/ D5 c4 d, J; J
Sub main(): g, b1 r0 m' w4 W( j! [
* u% D& r% t. P
Dim swApp As SldWorks.SldWorks
1 K& J( O0 M) k. l9 |! GDim swModel2 As SldWorks.ModelDoc2( q0 P# R5 b$ H7 x& Q
Dim SelMgr As SldWorks.SelectionMgr
6 m, g" A% l( ?. C8 e6 H5 w. vDim vCustInfoNameArr2 As Variant
" `$ B# {3 c9 H  ]: `5 s% KDim vCustInfoName2 As Variant
/ O1 k$ v  f+ s/ ?6 ^# CDim CurCFGname As Variant3 i0 i& n1 I! p" x* Y
Dim CurCFGnameCount As Integer
. C- ?  X. S% GDim Vnamearr As Variant
* m: v/ B* x6 }! K6 o) ^+ `! tDim CusPropMgr As CustomPropertyManager
4 v' c7 E- A: c( aDim bRet As Boolean
2 t, i7 R0 k) lDim Vnamearr2 As Variant
$ d/ U9 T  w  A/ e
7 j/ M- `8 q+ [* q! J/ C% H6 G" Z/ vDim strmat As String
6 ~) Q* [. ?& I5 sDim tempvalue As String
& B! l0 ^0 C7 @" x- u) e* w9 I. a1 i- S. ~, ^
Set swApp = Application.SldWorks
+ \% ^& W8 @% J4 c0 pSet swModel2 = swApp.ActiveDoc- i2 Y) T7 l- H/ ^
Set SelMgr = swModel2.SelectionManager '
" t0 o$ W- [1 S0 _/ c! ?# }
+ p8 U' N. Y; x9 k) W- W: ADim tg1 As String3 s3 r- X* n# D2 o+ B4 R
Dim tg2 As String
, s$ n& M$ x+ c5 c) p* [3 o. s3 RDim tg3 As String
) h* [, {  x! {: q: ^5 ^6 _: hDim tg4 As String
+ \% ?$ H* h8 n9 fDim tg5 As String, G1 C/ j$ T1 D. L* V0 e; y2 {
Dim tg6 As String7 q* p4 J# @) @9 j, ]
Dim tg7 As String
7 w  u  d; P7 J4 _. U: f$ X$ oDim tg8 As String
2 x+ t& s% s1 lDim tg9 As String
: E5 p$ f7 z! A3 l; b6 b8 n6 v+ RDim tg10 As String
" b3 G0 @* V. q/ z& GDim tg11 As String# f5 o- h% O: h, g5 l2 v
Dim wm As String( I1 [4 S3 |; O! S8 [; ]# M+ j
Dim wm1 As Integer% C* I& {# H5 b% f6 B
Dim wm2 As String  m( v7 e0 v& L
Dim wm3 As String
7 V, w' z$ w. H) W/ [5 }+ }' ?Dim wm4 As String6 _" e( |' y5 O  Y( l6 S7 a3 O
Dim wm5 As String
9 r: N$ I! K) s4 _( QDim wm6 As String0 w# X  ~1 S5 f  u
Dim wm7 As Integer: L- R& R0 H% c
Dim wm8 As String
2 \9 N, W3 b5 QDim wm9 As Integer
& w0 A4 o/ {; A7 E, pDim lz As String4 C/ r3 w; [* Q9 {7 @
Dim lz1 As Integer
  t5 G+ X! O8 |7 k' m8 _Dim lz2 As String( S( X/ H) F* y. y
Dim lz3 As String* c; ~; l7 b. v! `, e
Dim lz4 As Integer
" g% ]- q: Y2 x8 l, r) B: |Dim lz5 As Integer& |  A0 E1 \$ o! [$ e
Dim lz6 As String( z/ u- @- w7 u$ K) v
Dim lz7 As Integer                                                                     '以上为设定变量: L' N  U; Y& B
( t$ f- H3 r, o; }0 I
" {( v, V2 j6 h1 h, ^1 f. N
swApp.ActiveDoc.ActiveView.FrameState = 1" O+ i% ]( U, Q1 G" w
vCustInfoNameArr2 = swModel2.GetCustomInfoNames# x! \" Q+ g2 V; ?
  If Not IsEmpty(vCustInfoNameArr2) Then  q8 P; S" B2 y2 s  e
     For Each vCustInfoName2 In vCustInfoNameArr2
* f, ^" M; p5 h         bRet = swModel2.DeleteCustomInfo(vCustInfoName2)% P3 E) k& j, Q/ i+ N2 y. `
      Next" D' w4 H% q2 o* M( C  i
  End If                                                                               '此段是删除自定属性中的所有项和其项值8 U4 D8 _' x( z3 C, l) U) U
; }* \3 d: b' D( @) Y- Q

/ D8 u$ o2 g" E- c' L% h, s' x9 jCurCFGname = swModel2.GetConfigurationNames
: I2 K/ u( \/ q. E+ q% CCurCFGnameCount = swModel2.GetConfigurationCount( v, Q! ~5 P* i% K; O6 z
For i = 0 To CurCFGnameCount - 1
5 c! U3 X2 g1 ]8 t2 A8 n    Set CusPropMgr = swModel2.Extension.CustomPropertyManager(CurCFGname(i))
0 I( y) p! ~5 T) s( c% U' @    Vnamearr = CusPropMgr.GetNames
9 H6 y/ m$ @8 s1 K5 r5 c( }% Y    If Not IsEmpty(Vnamearr) Then
$ ~" P9 L4 R% k6 s/ e& R        For Each Vnamearr2 In Vnamearr* D' k6 w5 _6 q& g# y  ?! E# X, |
            bRet = swModel2.DeleteCustomInfo2(CurCFGname(i), Vnamearr2)
4 h$ v1 ~. ~4 s0 A, B- o- N        Next
' h5 m/ B! X2 l3 D1 B    End If
1 @3 f7 s/ V/ o) E4 T    Next                                                                               '此断是删除其他配置中的属性所有项和其项值
% f- M2 v% p- d2 U; {0 Q+ q9 U. D# |/ b7 s; U1 g

) O0 [) B& R% b( L6 jwm = swApp.ActiveDoc.GetTitle()                                                         '定义是文件名
. w# d5 F5 A7 q9 Y+ n2 I: U1 p+ qlz = swApp.ActiveDoc.GetPathName()                                                      '定义为文件路径
3 p6 s6 F6 N) x8 Atg6 = Chr(34) + Trim("SW-Material" + "@") + wm + Chr(34)                                '定义材料属性7 B' p7 w: O7 k# n
tg7 = Chr(34) + Trim("厚度" + "@") + wm + Chr(34)                                       '定义钣金厚度属性, c6 H: ^' K7 B
tg8 = Chr(34) + Trim("SW-Mass" + "@") + wm + Chr(34) + "kg"                             '定义质量属性
4 X% @- i( ~. D9 ftg9 = Chr(34) + Trim("SW-SurfaceArea" + "@") + wm + Chr(34) + "㎡"                      '定义表面积属性
, Q$ e) d* D9 m1 vbRet = swModel2.DeleteCustomInfo2("", "图号")! t' D! A1 Y6 J$ N5 I2 p
bRet = swModel2.DeleteCustomInfo2("", "Description")
0 O8 M5 X# _" r; [# A: ~# a6 R* t
: L; [/ u9 l8 h2 }8 D, F$ z; v$ a& E/ O* j
wm1 = InStrRev(wm, " ") - 1                                                              '引号内为空格,为图名分离符号        '从右向左搜索到第一个" "符号为第几个字串符; m0 ~( b- r+ [  D
If wm1 > 0 Then                                                                          '当mw1大于0量时
) H8 \# \" P- Z1 r    wm2 = Left(wm, wm1)                                                                  'wm2等于从wm的左侧开始提取mw1个字符9 a+ `% u+ U+ X+ ]4 C
    wm3 = Left(LTrim(wm), 3)                                                             'wm等于wm去除左侧无效字符的左前三个字符0 F# H3 j- a1 |& a7 W# Y; p
    If wm3 = "GBT" Then                                                                  '当wm3等于"GBT"时
# y9 F# K& N+ E# I8 T- k        wm4 = "GB/T" + Mid(wm2, 4)                                                       'wm4等于"GB/T"和wm2的第4个和后面的所有字符              '当零件是国标时添加国标号,文件名中/是非法字符. G, Z1 J' [3 u6 U
    Else
; m4 a/ k& w( j" _8 W        wm4 = wm2                                                                         '否则wm4等wm2           '空格前面是图号7 L( {# W+ |' i2 m) A3 U+ w
    End If0 M1 o: K' S7 Z9 ]7 ^: V3 z6 l

8 ^. _1 j: t  L1 ^3 ~8 h    wm5 = Mid(wm, wm1 + 2)                                                                'wm5等于wm中的第wm1+2个后面的所有字符% k- q* W& y' N
    wm6 = Right(wm, 7)                                                                    'wm6等于wm最后面的7个字符/ x4 c5 _! l  r. B  C2 H2 f7 W0 t
    If wm6 = ".SLDPRT" Or wm6 = ".SLDASM" Or wm6 = ".sldprt" Or wm6 = ".sldasm" Then      '当wm6等于这4个值时6 v) W' p. P0 ^1 d
        wm7 = Len(wm5) - 7                                                                'wm7等于wm5的所有字符数-7; T$ y- O- x+ w# q- V0 m& q
    Else' x5 ?' I7 |$ A& e
        wm7 = Len(wm5)                                                                    '否则wm7等于wm5的所有字符数6 ]. k( S( t0 l5 J, I
    End If7 Q# q& h4 f! B; s6 k/ y
    tg5 = Left(wm5, wm7)                                                                  'tg5等于wm5左侧的wm7个字符          ,空格后面是名称,有后缀名并去掉后缀名,无后缀后(文件未保存时)直接上档
3 _9 x5 s6 T* V- L2 g3 l9 H8 G. ~9 f4 U4 Y! g, ?
End If                                                                                                                       '此段为图名分离定义
8 |( h; ?' I5 }5 ?7 k6 q9 Y7 I1 ~6 @

* \. G1 ?' F( n$ x% U- f+ |8 EIf wm1 > 0 Then                                                                           '当wm1大于0时- v3 w$ ?- h6 \+ Z
tg4 = wm4                                                                                 'tg4等于wm4              '文件名有空格时,图号为分离出来图号
) L4 O7 G) L" F3 D) O) x. VElse7 w& D/ Z; w: C
    wm8 = Right(wm, 7)                                                                    'wm8等于wm最后面的7个字符
) }) J  {$ r  f  R% l3 C- M& r; [" N    If wm8 = ".SLDPRT" Or wm8 = ".SLDASM" Or wm8 = ".sldprt" Or wm8 = ".sldasm" Then      '当wm8等于这4个值时
1 G9 s. M) B4 K- @! S7 v        wm9 = Len(wm) - 7                                                                 'wm9等于wm的所有字符数-7
; z8 w# l: n* `, L! t* P    Else) x& p4 n/ |& E2 A5 z" G  I
        wm9 = Len(wm)) F6 m5 Z; E0 V4 z
    End If                                                                                '否则wm9等于wm所有字符数-7. K7 I0 M4 ^- d/ h. G4 k
tg4 = Left(wm, wm9)                                                                       'tg4等于wm左侧的wm9个字符    '文件无空格时,文件名即是图号,并去掉后缀名,无后缀名(文件未保存时)直接上档1 `/ S' E# o7 c$ N( @6 u, |
End If                                                                                                                        '此段为非图号名称命名文件,将文件名加到图号属性) M0 e& f3 C: g: ~- r: c
'例,fgq01-001 前门板:分离后图号(fgq-001),名称(前门板), N+ ?- W1 U6 x3 g! x
'例,fgq01-001 前 门板:分离后图号(fgq-001 前),名称(门板); }8 C6 n0 q( H+ v7 H- U% j
'例,fgq01-001-前门板:分离后图号(fgq-001-前门板),名称为空
: H, ~6 q1 A4 a8 ~0 o" ^'以最后一个空格为准分离5 e/ M6 v7 i4 g8 ]
8 J1 T6 _( i# T% [8 ?

. {$ g* {4 e% K7 S2 f6 j3 xlz1 = InStrRev(lz, "--")                                                                 'lz1为lz由后向前搜索到第一个"--"字符在第几个  O! L% [! ~9 W; U0 a" D! e5 G* s
If lz1 > 0 Then                                                                          '当lz1大于0时' `+ ~0 \9 Z# Y" ?8 w: ]7 g
lz2 = Mid(lz, lz1 - 8, 8)                                                                'lz2等于lz的第lz1-8个和其后面8个字符" H# a, i" [. j1 q
lz3 = Mid(lz, lz1 + 2)                                                                   'lz3等于lz的第lz2+2个后其后面所有字符
6 N4 {9 c1 y, V9 ?* x! v0 Glz4 = InStrRev(lz2, "\")                                                                 'lz4为lz2由后向前搜索到第一个"\"字符在第几个
/ ^( u2 i9 H( Nlz5 = InStr(lz3, "\")                                                                    'lz5为lz2由前向后搜索到第一个"\"字符在第几个
  d  d6 T# s- q$ [tg1 = Mid(lz2, lz4 + 1)                                                                  'tg1等于lz2的第lz4+1个后面的所有字符5 i1 w. h: [* Q2 a' w
'tg1 = Right(lz2, 8 - lz4)                                                               'tg1等于lz2右侧的8-lz4个字符(lz2总字符为8个)2 }7 M7 U( o7 W5 S1 ^
tg2 = Left(lz3, lz5 - 1)                                                                 'tg2等于lz3左侧的lz5-1个字符
1 C, U# d7 B1 ~2 d' G( d5 ^7 y) F. ~9 t$ y& `" n+ h/ u! p
lz6 = Mid(lz3, lz5 + 1)                                                                  'lz6等于lz3第lz5+1个后面的所有字符7 L2 _6 K4 A* u2 I- N% t
lz7 = InStr(lz6, "\")                                                                    'lz7为lz6由左向右搜索出第一个"\"字符在第几个
& V, }5 S& q+ N3 y% UIf lz7 > 0 Then                                                                          '当lz7大于0时2 ]" ^0 ^& }5 O) O& N4 e
tg3 = Left(lz6, lz7 - 1)                                                                 'tg3等于lz6左侧的lz7-1个字符
; C  Z5 [5 |/ J4 zEnd If' ?! s, N+ g" N+ s; J
End If                                                                                    '此段为文件路径提取项目号! z9 [' ~2 I& l& O  ]+ w0 K4 V1 k
'例,零件文件完整路径为:E:\工作文档\B-非标产品\非标--F类\FGQ--定制角架\2020版\前门板.SLDPRT
: z: h/ a9 @1 \9 }'由后向前搜索“--”,第一个“--”向前到“\”间为产品编号(FGQ),向后到“\”间为产品名称(定制角架),向后的第一个“\”和第二个间“\”,为版本号(2020版)。' t, s* y9 g9 x% k( P6 |6 H. a( k; f
9 Q0 S, O- {1 A& @: o
3 g, s. Y: [. W

# V+ }8 S* ?; G& v7 K0 j) ^bRet = swModel2.AddCustomInfo3("", "产品编号", swCustomInfoText, tg1)
- e+ C' }8 I. m" kbRet = swModel2.AddCustomInfo3("", "产品名称", swCustomInfoText, tg2)
- Z# d; U/ i" U( l& v: SbRet = swModel2.AddCustomInfo3("", "版本号", swCustomInfoText, tg3)# m" m9 H; K4 @2 P, Y3 ]" X: n
bRet = swModel2.AddCustomInfo3("", "图号", swCustomInfoText, tg4)
; r. X1 C" {, ?7 LbRet = swModel2.AddCustomInfo3("", "Description", swCustomInfoText, tg5), E  o: v, y( ?. f. x$ W
bRet = swModel2.AddCustomInfo3("", "数量", swCustomInfoText, "1")
4 H( U3 {5 Q" n3 `bRet = swModel2.AddCustomInfo3("", "备注1", swCustomInfoText, " ")
+ J  J. w) A; u4 c0 N* tbRet = swModel2.AddCustomInfo3("", "备注2", swCustomInfoText, " ")
! E/ N: c& I) S& X; o* ebRet = swModel2.AddCustomInfo3("", "备注3", swCustomInfoText, " ")
  t4 ^6 T  c7 s" s5 ObRet = swModel2.AddCustomInfo3("", "Material", swCustomInfoText, tg6)* V- T: T+ }& I2 m, K4 X# M# ]/ {
bRet = swModel2.AddCustomInfo3("", "SH", swCustomInfoText, tg7)
. F& h8 @6 f( F' L  m2 Y- }bRet = swModel2.AddCustomInfo3("", "重量", swCustomInfoText, tg8)
3 G( U$ E$ @% lbRet = swModel2.AddCustomInfo3("", "表面积", swCustomInfoText, tg9)                         '此段为填写自定义属性项与其值
! @. _, T9 u" k8 @) S- M) {3 V3 {/ Y1 N0 h
Dim thisFeat As SldWorks.Feature                                                         '另外增加一段宏,取读取切割清单数据,并添加到属性项。
4 ^# [  y& f  J) {% y4 s% S7 sDim thisSubFeat As SldWorks.Feature# f. r$ P# ~3 Q" @+ [
Dim cutFolder As Object. c7 G3 y4 E9 q- P; `! {% {
Dim BodyCount As Integer- v7 U( B* L# W! D& q9 n  Q
Dim custPropMgr As SldWorks.CustomPropertyManager0 ]+ T1 V5 {  g3 J
Dim propNames As Variant
2 w) y! C" |9 h- hDim vName As Variant
, w$ y2 _5 K, h- P1 t+ v6 oDim propName As String
5 g7 x6 N; Q" I; t! \# a% S/ zDim Value As String" O( F. J" N9 k3 _
Dim resolvedValue As String& o7 ^& u4 \; H% J7 Y; @/ v4 t) O0 F
Dim bjkcd As Double
3 F" n# d' c! |, WDim bjkkd As Double( ]2 a4 q" e! {/ @" Q7 Q; B1 t
'Sub main()
+ Q" E! Z$ j4 m% e5 X2 W'Set swApp = Application.SldWorks
. m* J: q7 z$ v# ?9 H  NSet Part = swApp.ActiveDoc
. n5 R# S+ H3 C( ySet thisFeat = Part.FirstFeature2 V+ o4 Y' l$ I+ }
Do While Not thisFeat Is Nothing '遍历设计树5 a2 N0 B- I2 K# v, q7 k% q
If thisFeat.GetTypeName = "SolidBodyFolder" Then9 T2 e! W$ Q9 R
thisFeat.GetSpecificFeature2.UpdateCutList
& m: {9 a. T% e% f  p5 D* UEnd If( i" l& g/ I* O* C4 [6 U
Set thisSubFeat = thisFeat.GetFirstSubFeature3 o( t) x, S. @2 e* c
Do While Not thisSubFeat Is Nothing
. z0 z' x& a( h6 f0 eIf thisSubFeat.GetTypeName = "CutListFolder" Then '查找切割清单
( E# Y# N- O2 ?( ?Set cutFolder = thisSubFeat.GetSpecificFeature27 o1 l! L( @0 E3 a8 I
End If
: ?/ O% ]* [" a# S8 b' o1 tIf Not cutFolder Is Nothing Then
# b) f! f" {% A8 R8 _0 OBodyCount = cutFolder.GetBodyCount
4 P& @+ X; Q! j/ bIf BodyCount > 0 Then& f/ e, k7 i) J- a+ _
Set custPropMgr = thisSubFeat.CustomPropertyManager. |: x5 k# D6 U1 O1 ?2 P$ U/ q
If Not custPropMgr Is Nothing Then
: k" x3 k2 E9 XpropNames = custPropMgr.GetNames '获取切割清单属性的数据全部名称并放入数组5 h; `. P* a" E& s9 I& j! G
If Not IsEmpty(propNames) Then
6 B7 b3 R  _5 p- ?0 PFor Each vName In propNames6 [( \2 B! q; X) O& t, u3 X
propName = vName
' R8 G( ~' U/ i+ v$ O# ycustPropMgr.Get2 propName, Value, resolvedValue '获取全部属性名称 ,数值和评估的值2 |! D$ D# Y) T( U6 f9 z4 f% A* C
If propName = "边界框长度" Then bjkcd = resolvedValue '判断是否是自己所需要的数据,如果是就获取
3 w8 B' _& i4 J5 K, _3 eIf propName = "边界框宽度" Then bjkkd = resolvedValue
: c) M" \% R/ \( |Next vName
1 x  g; j+ t1 ]& v8 B: |& f6 jEnd If  v' W2 J  }" q# E1 e/ W- {$ r/ J5 i
End If
( ]0 l# l! p7 c$ U% q7 \End If
, }, W# n9 P; ^" ~/ j4 v1 S( l) ]- _) LEnd If
( g* o2 t6 H( z( g7 @, q( B/ o- m7 ]Set thisSubFeat = thisSubFeat.GetNextSubFeature
+ ~: n3 H* ?( y' V* C" ELoop
$ _: n7 b7 i# s4 j! m; S+ [Set thisFeat = thisFeat.GetNextFeature, A# t: P4 |1 A) `5 W3 Q0 a5 D$ ^% I
Loop6 X& x! o0 _. c' w# l
'blnretval = Part.DeleteCustomInfo2("", "边界框长度") '删除属性栏上摘要信息的数据: T$ w0 r2 i" B( e9 b3 f! z  z  w' ~
'blnretval = Part.DeleteCustomInfo2("", "边界框宽度")8 O8 W& u& x" q8 w
blnretval = Part.AddCustomInfo3("", "开料长度", swCustomInfoText, bjkcd) '添加数据到摘要信息8 T# j% a% x8 \2 \; H8 x, I1 Y# Q; g
blnretval = Part.AddCustomInfo3("", "开料宽度", swCustomInfoText, bjkkd)
6 t2 n  W; m! `
3 }2 N) [, r% X, `End Sub
; b" b; _0 J; `/ K; ?9 ^0 l+ [5 ^/ G; ^. A2 b' F7 [

作者: 远祥    时间: 2021-1-13 16:28
挺复杂啊,比较难用吧??
作者: 晓昀    时间: 2021-1-13 17:17
这个是不是CAD转pdf的?佩服做软件二次开发的人。
作者: 柴荣1917    时间: 2021-1-13 17:29
学习一下。
作者: tg-000057    时间: 2021-1-13 17:40
晓昀 发表于 2021-1-13 17:17
* D  t- N" {% U/ f这个是不是CAD转pdf的?佩服做软件二次开发的人。
; A: S9 W# i$ {4 d, F) N
cad转PDF,用cad的PDF打印机就行了,这个是sw转dwg,dxf,和pdf等格式的。. N$ C0 t3 F9 B2 q) ~: p& c





欢迎光临 机械必威体育网址 (//www.szfco.com/) Powered by Discuz! X3.4