找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 5816|回复: 6

分享两个宏,有详细注解,可尽情修改使用,代码也一起放了。

[复制链接]
发表于 2021-1-13 14:11:47 | 显示全部楼层 |阅读模式

5 r: d; I, c4 C+ q- y8 g  w2 ~+ {& N9 C! ?工程图转格式:
' B2 y; R5 \0 Q& ?: T5 ~
9 p5 j  a& d1 J: q5 s0 B; I# x) J0 y/ ?' C4 V8 a6 M* K
Dim swApp As Object
$ ?! Z. R! w' A  F1 z, hDim Part As Object9 F$ T9 f* L  L8 p1 M4 G* X
Dim Filename As String
/ k  k1 o; S  s& U! C: B8 \0 WDim No As Integer
: W2 b5 @& E6 f9 TDim Title As String          '以上设定变量
2 R6 N) B+ ]* Y9 Y- s' KSub main()8 I! m* d8 V$ _5 T1 P' K+ m
Set swApp = Application.SldWorks
$ v4 ^, k+ C- t. o8 Q2 \Set Part = swApp.ActiveDoc                                                  '以上交换数据
4 x8 w! a" T. xFilename = Part.GetPathName()                                               'Filename为文件名
5 L7 R- [; J& |8 O/ `1 }! yNo = Len(Filename)                                                          'no为工程图文件名字符串总数- p8 c+ ?( c& V6 h0 {3 G  S
If No > 0 Then                                                              '当NO大于0时(转换格式名称是工程图名称,故要先保存工程图才可转换,工程图未保存无名称,无字符串,不可进行一下步)
6 i: I/ h3 O# O  iFilename = Left(Filename, No - 7) + "." + Right(Filename, 1)                '字串符操作,no-7为去掉工程图后缀名,"."+ right(filename,1)为增加后缀名最后一个字母作为识别,用于区别客户来图,可不要
" A6 F- M9 d( oPart.SaveAs2 Filename & ".dwg", 0, True, False                              '输出需要转换的格式文件,已有文件则自动替换,不提示,(有些格式文件在打开状态中不可替换,替换不成功也不提示)
  e9 \  \" v- b' J, c7 h9 jPart.SaveAs2 Filename & ".pdf", 0, True, False1 R0 U7 k) L$ x( j: R* ]
End If
0 B3 L8 _# P! aEnd Sub
7 `; S0 E6 V8 a9 x8 Y0 {- w+ s$ l

1 f- c% p0 U* ?( B' u$ L: i* s( }6 I
属性改写宏:. W/ S' A3 W# S: ?9 ~$ J& Q, x
1 w9 v! c# U# |5 R+ ^' {/ r2 a
  t7 i1 ^. B, b/ B$ T3 F
7 i7 l' b& k0 J, c# @
Sub main()
$ W; Y4 u. F% x$ x3 A" |; h
8 I! U& Y" ~  [Dim swApp As SldWorks.SldWorks
: Z( g0 M" U/ MDim swModel2 As SldWorks.ModelDoc2
/ f9 U8 p$ l6 NDim SelMgr As SldWorks.SelectionMgr
6 S* i' w1 |6 a& w( G" yDim vCustInfoNameArr2 As Variant
' V, X! u# R) A3 p* k' H2 gDim vCustInfoName2 As Variant
; U; b, B) M$ y6 \" NDim CurCFGname As Variant
0 d+ b! T! I& ]6 s* ^, Q1 l8 `7 gDim CurCFGnameCount As Integer9 K/ o  m$ \7 c5 m
Dim Vnamearr As Variant, c% S0 ^3 t7 O% V9 l
Dim CusPropMgr As CustomPropertyManager8 ]3 a3 ]6 F3 G/ ~" T  B
Dim bRet As Boolean5 k* L8 W, x4 N* U& e
Dim Vnamearr2 As Variant
$ n4 `/ u# n+ s. R& J! E* [- o$ e* U3 G, n/ _4 I& g- c  G
Dim strmat As String
1 {. R) ?7 T+ H3 Z# r1 K% V4 w1 sDim tempvalue As String
. h) A' E8 \) a* k3 w1 M! |3 e; ]0 t+ B8 J9 H& C
Set swApp = Application.SldWorks
3 o3 l1 u/ l% W) PSet swModel2 = swApp.ActiveDoc
! f" [) A- m) n7 @Set SelMgr = swModel2.SelectionManager '/ |5 l, R9 v, w. `
( m) y7 ?% s/ {
Dim tg1 As String! q, w& _0 D! _0 d$ D1 V
Dim tg2 As String1 `- Y' L% d6 Y; F( a3 ~
Dim tg3 As String
! n9 O! N0 I( v  S- {  k* r1 yDim tg4 As String
0 M' c: K6 b# T9 T2 B, n: {# N7 wDim tg5 As String3 e- \% K6 I& A3 a
Dim tg6 As String
8 C* q" O2 W* h3 W- i. qDim tg7 As String
9 m' T" e) l2 d3 J* ?Dim tg8 As String
- g  H, C# N/ q) A' vDim tg9 As String3 O. R5 q9 e+ W5 u0 q/ F. u0 D
Dim tg10 As String
6 ]2 b! D& g6 ?5 A8 D+ EDim tg11 As String
1 O9 [8 ~, [! Y% s" T4 U% XDim wm As String- |+ C, I  y6 |2 u* {+ h' u4 _9 S
Dim wm1 As Integer8 `- U2 u' o7 X# Q
Dim wm2 As String: O; @" h! ?4 z" ]- _7 ]5 O
Dim wm3 As String% G" Z1 M, r; v9 [/ m7 Q
Dim wm4 As String$ q4 A5 S: o9 H; R
Dim wm5 As String
2 P% R" H/ j9 Z! T# JDim wm6 As String& Y0 G+ k) C0 I, W
Dim wm7 As Integer( |/ J' S$ d- M, I5 {) M8 I
Dim wm8 As String6 N( ]' n% ]$ I' @. i$ t8 d9 S
Dim wm9 As Integer
- R: J+ Y- n3 k) X- j  J$ `7 ]5 jDim lz As String
+ l7 T! X3 U- }5 U% h4 R" SDim lz1 As Integer4 u2 I, r  {& w# [+ M* ^
Dim lz2 As String
. }+ ]$ `/ s4 {% ?" F5 vDim lz3 As String
$ j& d6 }( E/ |- nDim lz4 As Integer
9 H' _2 Z( l% z, j$ V5 d% l$ H& rDim lz5 As Integer+ z, g2 f5 t1 Q3 k+ Q5 i& M2 q% v
Dim lz6 As String
) T- E; m7 ?' ~% G6 ^5 EDim lz7 As Integer                                                                     '以上为设定变量6 f* ^9 v& M& \, Y8 V6 u

$ z  G4 Z, [' O) z/ @  B: o+ m, j( E) i
swApp.ActiveDoc.ActiveView.FrameState = 1
( m* @2 b2 ]2 w9 e5 dvCustInfoNameArr2 = swModel2.GetCustomInfoNames2 \" g" K! n. W6 V9 f- e
  If Not IsEmpty(vCustInfoNameArr2) Then
: \9 R% s; R4 d0 m, F8 h2 s: W3 y     For Each vCustInfoName2 In vCustInfoNameArr2
/ E1 `& o0 Y2 [8 g0 p+ {% C8 B( s         bRet = swModel2.DeleteCustomInfo(vCustInfoName2)
1 ^' \1 v( H5 L" C" O! Q      Next
& U5 n; O3 z0 E6 j8 Y  End If                                                                               '此段是删除自定属性中的所有项和其项值; R5 U5 L% q. P5 m

7 w2 Y0 \& T. W+ I( h0 l& v
/ N$ J0 e9 n) u! OCurCFGname = swModel2.GetConfigurationNames
  |3 k# i& k8 w6 l6 |1 ^/ n6 d: BCurCFGnameCount = swModel2.GetConfigurationCount; j6 D) l* \" m: a4 u( w% C
For i = 0 To CurCFGnameCount - 1  J9 E  l. S# f. W& a
    Set CusPropMgr = swModel2.Extension.CustomPropertyManager(CurCFGname(i))
+ X) W/ J4 m2 @$ ^3 t    Vnamearr = CusPropMgr.GetNames
* X* ~" O9 R* W1 C% q    If Not IsEmpty(Vnamearr) Then; W- g+ N8 w) v5 u$ T1 \5 j
        For Each Vnamearr2 In Vnamearr
5 {  D( Z) s  j- x& ?& I            bRet = swModel2.DeleteCustomInfo2(CurCFGname(i), Vnamearr2)
5 J3 w" m) \# }        Next
4 v* B3 E! D6 }    End If! U7 j* U: U8 X* T
    Next                                                                               '此断是删除其他配置中的属性所有项和其项值
- i+ C' e& [( [6 X
5 @  D5 d' A8 {$ X, X
& c- o  ~# x, R0 ewm = swApp.ActiveDoc.GetTitle()                                                         '定义是文件名
9 Q5 j+ o) }+ ?: ]- olz = swApp.ActiveDoc.GetPathName()                                                      '定义为文件路径, |, g8 ?( L, f" h
tg6 = Chr(34) + Trim("SW-Material" + "@") + wm + Chr(34)                                '定义材料属性5 v% P5 j1 M9 [$ Z+ }+ U
tg7 = Chr(34) + Trim("厚度" + "@") + wm + Chr(34)                                       '定义钣金厚度属性
% c  t) }& R' V" otg8 = Chr(34) + Trim("SW-Mass" + "@") + wm + Chr(34) + "kg"                             '定义质量属性) {6 F) ~* `$ H& B
tg9 = Chr(34) + Trim("SW-SurfaceArea" + "@") + wm + Chr(34) + "㎡"                      '定义表面积属性0 V7 h! |4 B* j
bRet = swModel2.DeleteCustomInfo2("", "图号")% ~2 ?8 e. M- H. \, ]( R8 |
bRet = swModel2.DeleteCustomInfo2("", "Description")2 ^8 y5 q1 B* i% J
9 x  V6 ]$ \' Y1 {0 p
0 y1 g! q+ M; O. e! S% L
wm1 = InStrRev(wm, " ") - 1                                                              '引号内为空格,为图名分离符号        '从右向左搜索到第一个" "符号为第几个字串符
, y5 o( J+ s1 r% p3 tIf wm1 > 0 Then                                                                          '当mw1大于0量时0 @% I3 T/ q) z  E' K
    wm2 = Left(wm, wm1)                                                                  'wm2等于从wm的左侧开始提取mw1个字符6 g- x- N0 i. t+ ]
    wm3 = Left(LTrim(wm), 3)                                                             'wm等于wm去除左侧无效字符的左前三个字符4 g) |! W% g1 c% m, G. A4 X
    If wm3 = "GBT" Then                                                                  '当wm3等于"GBT"时
' d/ C; d: j$ h3 Z2 \  U4 r        wm4 = "GB/T" + Mid(wm2, 4)                                                       'wm4等于"GB/T"和wm2的第4个和后面的所有字符              '当零件是国标时添加国标号,文件名中/是非法字符* F" G- m! T4 _) x
    Else4 ~6 H' u! z1 j6 Z% k$ h- T1 M, C
        wm4 = wm2                                                                         '否则wm4等wm2           '空格前面是图号" S7 a- ]8 Q3 d& D) \/ ]( i# c5 D
    End If. H3 b+ U/ O2 Y& U- n$ U6 {) T
# i" O/ K5 ?1 i) o  c5 e5 h$ d
    wm5 = Mid(wm, wm1 + 2)                                                                'wm5等于wm中的第wm1+2个后面的所有字符
6 x/ d. z  C2 b5 {  ~    wm6 = Right(wm, 7)                                                                    'wm6等于wm最后面的7个字符
0 O/ ~: t2 V* y5 x0 o    If wm6 = ".SLDPRT" Or wm6 = ".SLDASM" Or wm6 = ".sldprt" Or wm6 = ".sldasm" Then      '当wm6等于这4个值时7 t6 _  J6 h0 d- ~0 Q" t8 ^
        wm7 = Len(wm5) - 7                                                                'wm7等于wm5的所有字符数-7
; O5 u! ]1 _& D: K: }  j    Else
8 H# w, L8 \4 U& X9 ~: ?1 N6 u8 u        wm7 = Len(wm5)                                                                    '否则wm7等于wm5的所有字符数
% s/ f- X1 `" l1 I  e/ @    End If% ~9 r+ _! E3 D1 a  _" i0 P
    tg5 = Left(wm5, wm7)                                                                  'tg5等于wm5左侧的wm7个字符          ,空格后面是名称,有后缀名并去掉后缀名,无后缀后(文件未保存时)直接上档* k) Q7 Q% H7 x$ _
* A5 k* u" y7 W( y
End If                                                                                                                       '此段为图名分离定义
  D& M* W% j1 i, ?/ w5 e3 w: M" B% k8 W( h

7 f+ Y4 T( K* n; E7 K: jIf wm1 > 0 Then                                                                           '当wm1大于0时
* i8 K2 N7 T1 xtg4 = wm4                                                                                 'tg4等于wm4              '文件名有空格时,图号为分离出来图号2 ]) r3 J: N: n+ L  E9 M
Else3 L6 |  @! G, e. |/ l9 S
    wm8 = Right(wm, 7)                                                                    'wm8等于wm最后面的7个字符
: u9 _$ v0 z! V. R* N    If wm8 = ".SLDPRT" Or wm8 = ".SLDASM" Or wm8 = ".sldprt" Or wm8 = ".sldasm" Then      '当wm8等于这4个值时+ l, Z0 M  u% M) q# Y
        wm9 = Len(wm) - 7                                                                 'wm9等于wm的所有字符数-7
" r- k6 n% p$ q$ t3 L7 {    Else
. @5 x+ i# n1 ~2 w0 ^        wm9 = Len(wm)
, ?! I4 T. L, Z. I) o- n9 w    End If                                                                                '否则wm9等于wm所有字符数-7  ~3 d" [1 q6 c, d, ]& ~" _
tg4 = Left(wm, wm9)                                                                       'tg4等于wm左侧的wm9个字符    '文件无空格时,文件名即是图号,并去掉后缀名,无后缀名(文件未保存时)直接上档. s! K6 l  N  D4 w' G# N" t
End If                                                                                                                        '此段为非图号名称命名文件,将文件名加到图号属性8 H" A: r: ^4 d% X! X+ l3 ]: o' x
'例,fgq01-001 前门板:分离后图号(fgq-001),名称(前门板)" |: ?/ {5 W( P; u0 t2 Z6 |. K
'例,fgq01-001 前 门板:分离后图号(fgq-001 前),名称(门板)% q- o: F, w" Q! q/ ]8 \% n
'例,fgq01-001-前门板:分离后图号(fgq-001-前门板),名称为空
* H7 z4 \: i1 Q& n: }'以最后一个空格为准分离' z8 }. Z( l4 m4 S; n
, I0 C" M, j5 g7 w6 Z* S2 u0 S
: r. o" Y2 q* Q) n+ Z
lz1 = InStrRev(lz, "--")                                                                 'lz1为lz由后向前搜索到第一个"--"字符在第几个  _8 B5 v/ F1 j7 P+ J1 E
If lz1 > 0 Then                                                                          '当lz1大于0时5 K# X! {% l2 ~5 S
lz2 = Mid(lz, lz1 - 8, 8)                                                                'lz2等于lz的第lz1-8个和其后面8个字符
; G( ]/ {  m8 h& @9 k* Xlz3 = Mid(lz, lz1 + 2)                                                                   'lz3等于lz的第lz2+2个后其后面所有字符8 A. W# M  ^  x! Q) ~; P
lz4 = InStrRev(lz2, "\")                                                                 'lz4为lz2由后向前搜索到第一个"\"字符在第几个1 y8 j- |" R- ]9 g5 |* I4 u
lz5 = InStr(lz3, "\")                                                                    'lz5为lz2由前向后搜索到第一个"\"字符在第几个
: l; @4 g* D0 U9 htg1 = Mid(lz2, lz4 + 1)                                                                  'tg1等于lz2的第lz4+1个后面的所有字符* c) K" H" K* c8 t  b
'tg1 = Right(lz2, 8 - lz4)                                                               'tg1等于lz2右侧的8-lz4个字符(lz2总字符为8个)) L9 F9 V- l5 x4 J6 Y# M/ j* J
tg2 = Left(lz3, lz5 - 1)                                                                 'tg2等于lz3左侧的lz5-1个字符; M/ c  w4 Y" f: D( z6 e5 a: x
' ?7 F! O7 ^- f9 d, q
lz6 = Mid(lz3, lz5 + 1)                                                                  'lz6等于lz3第lz5+1个后面的所有字符
) U' a; F8 O! y- c1 ~lz7 = InStr(lz6, "\")                                                                    'lz7为lz6由左向右搜索出第一个"\"字符在第几个
! V1 u: o4 P6 W  FIf lz7 > 0 Then                                                                          '当lz7大于0时( W5 t& D. x4 ~& N
tg3 = Left(lz6, lz7 - 1)                                                                 'tg3等于lz6左侧的lz7-1个字符
8 ^3 ]% ]& N6 Q5 L! S; DEnd If
4 E" x9 P3 d9 z, R" q$ SEnd If                                                                                    '此段为文件路径提取项目号/ x; N. l6 Y+ {, [: q# M. s
'例,零件文件完整路径为:E:\工作文档\B-非标产品\非标--F类\FGQ--定制角架\2020版\前门板.SLDPRT. v" H6 ?, [+ c5 w
'由后向前搜索“--”,第一个“--”向前到“\”间为产品编号(FGQ),向后到“\”间为产品名称(定制角架),向后的第一个“\”和第二个间“\”,为版本号(2020版)。
6 [  N$ q" K4 r) ~
/ x9 Q  r! M1 {. k7 O+ [" t/ c# e' Q: o1 m* i
2 a# L* d' S+ c1 P6 `- x7 ~
bRet = swModel2.AddCustomInfo3("", "产品编号", swCustomInfoText, tg1)
* O. R0 A1 j* B) B' |  {8 T  EbRet = swModel2.AddCustomInfo3("", "产品名称", swCustomInfoText, tg2)2 {& L  I- {2 X2 G6 |, N/ F5 b0 R
bRet = swModel2.AddCustomInfo3("", "版本号", swCustomInfoText, tg3)
! ~1 c- F: a# ?4 WbRet = swModel2.AddCustomInfo3("", "图号", swCustomInfoText, tg4)
* c+ l5 G' i% y4 y2 XbRet = swModel2.AddCustomInfo3("", "Description", swCustomInfoText, tg5)+ e) r5 F; B1 D) ?  y. b
bRet = swModel2.AddCustomInfo3("", "数量", swCustomInfoText, "1")
* ^6 c4 ^& o4 M8 S0 kbRet = swModel2.AddCustomInfo3("", "备注1", swCustomInfoText, " ")
7 X4 {1 Y) x& C0 M0 d9 k0 H! r: JbRet = swModel2.AddCustomInfo3("", "备注2", swCustomInfoText, " ")
* Q* t" i: C. u* FbRet = swModel2.AddCustomInfo3("", "备注3", swCustomInfoText, " ")
5 {5 J' b$ P& q, n( o* Z7 G9 CbRet = swModel2.AddCustomInfo3("", "Material", swCustomInfoText, tg6)# V0 T- W$ Z/ Z+ d
bRet = swModel2.AddCustomInfo3("", "SH", swCustomInfoText, tg7)
% G" o6 J; d2 x5 W0 abRet = swModel2.AddCustomInfo3("", "重量", swCustomInfoText, tg8)
9 Q/ |& M2 X, W5 tbRet = swModel2.AddCustomInfo3("", "表面积", swCustomInfoText, tg9)                         '此段为填写自定义属性项与其值  i2 i' |1 Z7 v
( b# D. q% z; J3 `; _; F& w" A
Dim thisFeat As SldWorks.Feature                                                         '另外增加一段宏,取读取切割清单数据,并添加到属性项。5 `3 d/ b# W+ m3 y! Q4 K9 `
Dim thisSubFeat As SldWorks.Feature; n1 f: B7 u8 g  W% h
Dim cutFolder As Object
  m3 O# ?3 F- L2 Y' yDim BodyCount As Integer
. g! h9 Z9 n# W3 C6 wDim custPropMgr As SldWorks.CustomPropertyManager1 ?# x7 A% A# d. ~2 F
Dim propNames As Variant
" I4 a5 @8 m( z, I9 B$ Z2 MDim vName As Variant+ S# x. K4 ~4 Z
Dim propName As String
- A& {. {' i2 g3 q3 IDim Value As String' N$ g- U, R2 N  D8 J1 x4 ?' q
Dim resolvedValue As String
- N/ U- Y4 J. Q7 k, r1 B3 ]: ~" x, rDim bjkcd As Double+ x4 t% O5 P! V5 q- }- _7 f  g7 J
Dim bjkkd As Double
9 h. z, E; X0 E0 ?9 `; n! y% v'Sub main()- O7 J, D8 w3 U" ?2 ~5 ~8 \) C
'Set swApp = Application.SldWorks/ F5 c. F" ~. Q7 `" X; d& z
Set Part = swApp.ActiveDoc  n; H) x( a* l0 Z$ l# g
Set thisFeat = Part.FirstFeature. L# J0 U, |9 K$ t# h
Do While Not thisFeat Is Nothing '遍历设计树# [1 J; z2 }' k7 j, Y" f$ |
If thisFeat.GetTypeName = "SolidBodyFolder" Then
! Y2 f, M/ c8 ~# U6 L( ?thisFeat.GetSpecificFeature2.UpdateCutList7 G3 |/ t& ]+ u' T# Q
End If) g8 E* G) g( Y: {: h4 `. |
Set thisSubFeat = thisFeat.GetFirstSubFeature
; z8 y; G$ B9 U6 xDo While Not thisSubFeat Is Nothing/ T7 R+ {  Y( w: z0 ?  ?
If thisSubFeat.GetTypeName = "CutListFolder" Then '查找切割清单
/ U" N1 q  ~: a7 `Set cutFolder = thisSubFeat.GetSpecificFeature22 [) |9 q4 w. [, P: y' H; Z
End If& D& Y* x# @6 Q
If Not cutFolder Is Nothing Then
( E* h) N' X& QBodyCount = cutFolder.GetBodyCount/ l1 Q  Z& ]$ Z0 N: [) \' X
If BodyCount > 0 Then
$ q# ^% g* G; I! d9 ~Set custPropMgr = thisSubFeat.CustomPropertyManager
' ]* Z- K3 K# U6 D0 U5 sIf Not custPropMgr Is Nothing Then
  O' K0 ~7 I) Y1 ^. R/ G" ~5 DpropNames = custPropMgr.GetNames '获取切割清单属性的数据全部名称并放入数组" b/ @1 W' ?3 u- _3 F& c' u; b) D+ t
If Not IsEmpty(propNames) Then
& w) x7 ?3 g, r& C; e% ^For Each vName In propNames
8 F/ ?5 B+ I. o. J! Y. O" `8 xpropName = vName
' e  V# x; U* [. B7 R( @: KcustPropMgr.Get2 propName, Value, resolvedValue '获取全部属性名称 ,数值和评估的值2 U1 q( d- m/ R- S* H- |
If propName = "边界框长度" Then bjkcd = resolvedValue '判断是否是自己所需要的数据,如果是就获取- i" C  h+ k3 v$ h8 Y4 U$ A* F) F
If propName = "边界框宽度" Then bjkkd = resolvedValue0 t2 [/ F; P8 j: h% r# ^: d2 }
Next vName
- _3 z0 W: ]6 T& sEnd If) R6 i1 g* L4 Y* k4 ?8 w
End If$ q- U1 Z' d$ S) m
End If7 Y# P3 T. X5 F0 @& w
End If
) b% o: D% y  [* r3 e  ISet thisSubFeat = thisSubFeat.GetNextSubFeature' x, q- I# g3 ^9 d% i
Loop
* h) N: J2 p0 O7 M4 L2 dSet thisFeat = thisFeat.GetNextFeature4 G  ]! M+ o6 j" M
Loop+ I2 }! r( M9 B+ `
'blnretval = Part.DeleteCustomInfo2("", "边界框长度") '删除属性栏上摘要信息的数据
9 T; [. }6 m0 D$ s4 `'blnretval = Part.DeleteCustomInfo2("", "边界框宽度")
$ ~+ G$ t' w  d) F9 e% a2 M. x: K- Dblnretval = Part.AddCustomInfo3("", "开料长度", swCustomInfoText, bjkcd) '添加数据到摘要信息
& V4 ^( P: A+ t8 L/ a/ Cblnretval = Part.AddCustomInfo3("", "开料宽度", swCustomInfoText, bjkkd)/ w& I" Z% Q; H1 g+ E$ K- W) `

, H' V3 l2 _) V( o% HEnd Sub& T) D5 O3 ~( g- R3 g; ^

$ K  r' t! ?, W7 K

本帖子中包含更多资源

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

×
回复

使用道具 举报

发表于 2021-1-13 16:28:08 | 显示全部楼层
挺复杂啊,比较难用吧??
发表于 2021-1-13 17:17:50 | 显示全部楼层
这个是不是CAD转pdf的?佩服做软件二次开发的人。
发表于 2021-1-13 17:29:04 | 显示全部楼层
学习一下。
回复

使用道具 举报

 楼主| 发表于 2021-1-13 17:40:43 | 显示全部楼层
晓昀 发表于 2021-1-13 17:17& i6 Z3 [+ Q, `
这个是不是CAD转pdf的?佩服做软件二次开发的人。
+ ]4 S' c; R4 y* k. `- U1 `
cad转PDF,用cad的PDF打印机就行了,这个是sw转dwg,dxf,和pdf等格式的。
5 N* m5 H, E. R: r( J

点评

大牛!  发表于 2021-1-13 18:01
发表于 2025-4-19 19:34:17 | 显示全部楼层
学习一下,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-9-19 18:20 , Processed in 0.073863 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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