SolidWorks机械工程师网——最大的SolidWorks学习平台

标题: 求助,使用SW API实现批量中英文翻译功能 [打印本页]

作者: 1360321994    时间: 2024-4-10 14:08
标题: 求助,使用SW API实现批量中英文翻译功能

现有SW API写入属性的代码(来源于浣熊大的代码【新提醒】Excel 批量修改SW档案属性 (无需 SWDM-API 许可号码) (swbbsc.com))和SolidWorks翻译宏程序,请大神整合一下改一个批量中英文翻译的SW API,
由于电脑加密原版代码程序不能发出,可以下载附件内TXT文档的各个代码整合或者直接下载浣熊大的代码文档
感谢大家

英译中宏代码(宏程序可用).txt

(10.21 KB, 下载次数: 7

打开SolidWorks代码(可用).txt

(868 Bytes, 下载次数: 6

浏览文档(可用).txt

(1.35 KB, 下载次数: 6

中译英宏代码(宏程序可用).txt

(10.21 KB, 下载次数: 8

自己乱七八改的代码(一堆问题).txt

(10.82 KB, 下载次数: 5


作者: xuhuaying    时间: 2024-4-10 15:11
很不错,顶一下!
作者: xbo626    时间: 2024-4-10 15:12
可以发出来,不过需要审核
作者: 1360321994    时间: 2024-4-10 16:51
Dim swApp As Object

Dim Featname As String
Dim Engnames(142), Chsnames(142) As String
Dim OldName As String
Dim i As Integer
Dim ii As Integer
Dim nn As Integer
Dim value As Variant
Dim PathName As String
Dim FileName As String
Dim swFileTYpe As Integer
Dim HeaderRow As Integer
Dim RowNumber As Integer
Dim SavedFilesCount As Integer

' 主过程
Sub WritePrp()
' 初始化翻译字典
Engnames(0) = "Annotations"
Chsnames(0) = "注解"
Engnames(1) = "Lighting"
Chsnames(1) = "光源、相机与布景"
Engnames(2) = "Solid Bodies"
Chsnames(2) = "实体"
Engnames(3) = "Surface Bodies"
Chsnames(3) = "曲面实体"
Engnames(4) = "Material"
Chsnames(4) = "材质"
Engnames(5) = "Front Plane"
Chsnames(5) = "前视基准面"
Engnames(6) = "Top Plane"
Chsnames(6) = "上视基准面"
Engnames(7) = "Right Plane"
Chsnames(7) = "右视基准面"
Engnames(8) = "Origin"
Chsnames(8) = "原点"
Engnames(9) = "Plane"
Chsnames(9) = "基准面"
Engnames(10) = "Axis"
Chsnames(10) = "基准轴"
Engnames(11) = "3DSketch"
Chsnames(11) = "3D草图"
Engnames(12) = "Sketch"
Chsnames(12) = "草图"
Engnames(13) = "Boss-Extrude-Thin"
Chsnames(13) = "拉伸-薄壁"
Engnames(14) = "Base-Extrude-Thin"
Chsnames(14) = "拉伸-薄壁"
Engnames(15) = "Boss-Extrude"
Chsnames(15) = "凸台-拉伸"
Engnames(16) = "Base-Extrude"
Chsnames(16) = "凸台-拉伸"
Engnames(17) = "Boss-Revolve-Thin"
Chsnames(17) = "旋转-薄壁"
Engnames(18) = "Base-Revolve-Thin"
Chsnames(18) = "旋转-薄壁"
Engnames(19) = "Boss-Revolve"
Chsnames(19) = "凸台-旋转"
Engnames(20) = "Base-Revolve"
Chsnames(20) = "凸台-旋转"
Engnames(21) = "Base-Sweep"
Chsnames(21) = "凸台-扫描"
Engnames(22) = "Boss-Sweep"
Chsnames(22) = "凸台-扫描"
Engnames(23) = "Boss-Loft"
Chsnames(23) = "放样"
Engnames(24) = "Base-Loft"
Chsnames(24) = "放样"
Engnames(25) = "Boundary"
Chsnames(25) = "边界"
Engnames(26) = "Boss-Thicken"
Chsnames(26) = "加厚"
Engnames(27) = "Base-Thicken"
Chsnames(27) = "加厚"
Engnames(28) = "Cut-Extrude-Thin"
Chsnames(28) = "薄壁-切除-拉伸"
Engnames(29) = "Cut-Extrude"
Chsnames(29) = "切除-拉伸"
Engnames(30) = "Cut-Revolve-Thin"
Chsnames(30) = "薄壁-切除-旋转"
Engnames(31) = "Cut-Revolve"
Chsnames(31) = "切除-旋转"
Engnames(32) = "Cut-Sweep"
Chsnames(32) = "切除-扫描"
Engnames(33) = "Cut-Loft"
Chsnames(33) = "切除-放样"
Engnames(34) = "Cut-Boundary"
Chsnames(34) = "切除-边界"
Engnames(35) = "Cut-Thicken"
Chsnames(35) = "加厚-切除"
Engnames(36) = "SurfaceCut"
Chsnames(36) = "使用曲面切除"
Engnames(37) = "VarFillet"
Chsnames(37) = "变化圆角"
Engnames(38) = "Fillet"
Chsnames(38) = "圆角"
Engnames(39) = "Chamfer"
Chsnames(39) = "倒角"
Engnames(40) = "Diameter Slot"
Chsnames(40) = "直径槽口"
Engnames(41) = "Tapped Hole"
Chsnames(41) = "螺纹孔"
Engnames(42) = "Clearance Slot"
Chsnames(42) = "间隙槽口"
Engnames(43) = "Dowel Hole"
Chsnames(43) = "暗销孔"
Engnames(44) = "Hexagon socket head cap screws"
Chsnames(44) = "内六角圆柱头螺钉的类型"
Engnames(45) = "Clearance Hole"
Chsnames(45) = "间隙孔"
Engnames(46) = "Diameter Hole"
Chsnames(46) = "直径孔"
Engnames(47) = "CBORE SLOT"
Chsnames(47) = "打孔尺寸"
Engnames(48) = "Draft"
Chsnames(48) = "拔模"
Engnames(49) = "Shell"
Chsnames(49) = "抽壳"
Engnames(50) = "Rib"
Chsnames(50) = "筋"
Engnames(51) = "Scale"
Chsnames(51) = "缩放比例"
Engnames(52) = "Dome"
Chsnames(52) = "圆顶"
Engnames(53) = "Freeform"
Chsnames(53) = "自由形"
Engnames(54) = "Deform"
Chsnames(54) = "变形"
Engnames(55) = "Indent"
Chsnames(55) = "压凹"
Engnames(56) = "Flex"
Chsnames(56) = "弯曲"
Engnames(57) = "Wrap"
Chsnames(57) = "包覆"
Engnames(58) = "Cavity"
Chsnames(58) = "型腔"
Engnames(59) = "Join"
Chsnames(59) = "连接重组"
Engnames(60) = "Combine"
Chsnames(60) = "组合"
Engnames(61) = "Split Line"
Chsnames(61) = "分割线"
Engnames(62) = "Split"
Chsnames(62) = "分割"
Engnames(63) = "Body-Move/Copy"
Chsnames(63) = "实体-移动/复制"
Engnames(64) = "Body-Delete/Keep"
Chsnames(64) = "实体-删除/保留"
Engnames(65) = "Imported"
Chsnames(65) = "输入"
Engnames(66) = "Imported Curve"
Chsnames(66) = "输入的曲线"
Engnames(67) = "Save-Bodies"
Chsnames(67) = "保存实体"
Engnames(68) = "Linear Pattern"
Chsnames(68) = "阵列(线性)"
Engnames(69) = "CirPattern"
Chsnames(69) = "阵列(圆周)"
Engnames(70) = "Surface-Mirror"
Chsnames(70) = "曲面镜向"
Engnames(71) = "Mirror"
Chsnames(71) = "镜向"
Engnames(72) = "Table-driven Pattern"
Chsnames(72) = "表格阵列"
Engnames(73) = "Sketch-driven Pattern"
Chsnames(73) = "草图阵列"
Engnames(74) = "Curve-driven Pattern"
Chsnames(74) = "曲线阵列"
Engnames(75) = "Fill Pattern"
Chsnames(75) = "填充阵列"
Engnames(76) = "Mounting Boss"
Chsnames(76) = "装配凸台"
Engnames(77) = "Sape Hook"
Chsnames(77) = "弹簧扣"
Engnames(78) = "Sape Hook Groove"
Chsnames(78) = "弹簧扣凹槽"
Engnames(79) = "Vent"
Chsnames(79) = "通风口"
Engnames(80) = "Lip/Groove"
Chsnames(80) = "唇缘/凹槽"
Engnames(81) = "Surface-Extrude"
Chsnames(81) = "曲面-拉伸"
Engnames(82) = "Surface-Extend"
Chsnames(82) = "曲面-拉伸"
Engnames(83) = "Surface-Revolve"
Chsnames(83) = "曲面-旋转"
Engnames(84) = "Surface-Sweep"
Chsnames(84) = "曲面-扫描"
Engnames(85) = "Surface-Loft"
Chsnames(85) = "曲面-放样"
Engnames(86) = "Surface-Boundary"
Chsnames(86) = "曲面-边界"
Engnames(87) = "Surface-Plane"
Chsnames(87) = "曲面-基准面"
Engnames(88) = "Surface-Offset"
Chsnames(88) = "曲面-等距"
Engnames(89) = "Surface-Radiat"
Chsnames(89) = "曲面-延展"
Engnames(90) = "Ruled Surface"
Chsnames(90) = "直纹曲面"
Engnames(91) = "Surface-Fill"
Chsnames(91) = "曲面填充"
Engnames(92) = "Mid Surface"
Chsnames(92) = "中面"
Engnames(93) = "Parting Surface"
Chsnames(93) = "分型面"
Engnames(94) = "Surface-Extend"
Chsnames(94) = "曲面-延伸"
Engnames(95) = "Surface-Trim"
Chsnames(95) = "曲面-剪裁"
Engnames(96) = "Surface-Untrim"
Chsnames(96) = "曲面-解除剪裁"
Engnames(97) = "Surface-Knit"
Chsnames(97) = "曲面-缝合"
Engnames(98) = "DeleteFace"
Chsnames(98) = "删除面"
Engnames(99) = "ReplaceFace"
Chsnames(99) = "替换面"
Engnames(100) = "MoveFace"
Chsnames(100) = "移动面"
Engnames(101) = "Heal Edges"
Chsnames(101) = "愈合边线"
Engnames(102) = "Curve"
Chsnames(102) = "曲线"
Engnames(103) = "Split Line"
Chsnames(103) = "分割线"
Engnames(104) = "Projected Curve"
Chsnames(104) = "投影曲线"
Engnames(105) = "Composite Curve"
Chsnames(105) = "组合曲线"
Engnames(106) = "Curve Through XYZ Points"
Chsnames(106) = "通过XYZ点的曲线"
Engnames(107) = "Curve Through Reference Points"
Chsnames(107) = "通过参考点的曲线"
Engnames(108) = "Helix/Spiral"
Chsnames(108) = "螺旋线/涡状线"
Engnames(109) = "Sheet-Metal"
Chsnames(109) = "钣金"
Engnames(110) = "Base-Flange"
Chsnames(110) = "基体-法兰"
Engnames(111) = "Convert To Sheet Metal"
Chsnames(111) = "转换到钣金"
Engnames(112) = "Edge-Flange"
Chsnames(112) = "边线-法兰"
Engnames(113) = "Miler-Flange"
Chsnames(113) = "斜接-法兰"
Engnames(114) = "Swept-Flange"
Chsnames(114) = "扫描-法兰"
Engnames(115) = "Hem"
Chsnames(115) = "褚边"
Engnames(116) = "Jog"
Chsnames(116) = "转折"
Engnames(117) = "Sketched Bend"
Chsnames(117) = "绘制的折弯"
Engnames(118) = "Cross Break"
Chsnames(118) = "交叉折断"
Engnames(119) = "Closed Corner"
Chsnames(119) = "闭合角"
Engnames(120) = "Welded Corner"
Chsnames(120) = "焊接边角"
Engnames(121) = "Break Corner"
Chsnames(121) = "断裂边角"
Engnames(122) = "Corner Trim"
Chsnames(122) = "边角剪裁"
Engnames(123) = "Unfold"
Chsnames(123) = "展开"
Engnames(124) = "Fold"
Chsnames(124) = "折叠"
Engnames(125) = "Lofted Bends"
Chsnames(125) = "放样的折弯"
Engnames(126) = "Bends"
Chsnames(126) = "折弯"
Engnames(127) = "Rip"
Chsnames(127) = "切口"
Engnames(128) = "Forming Tool"
Chsnames(128) = "成形工具"
Engnames(129) = "Flat-Pattern"
Chsnames(129) = "平板型式"
Engnames(130) = "Weldment"
Chsnames(130) = "焊件"
Engnames(131) = "Weld"
Chsnames(131) = "焊接件"
Engnames(132) = "Structural Member"
Chsnames(132) = "结构构件"


    ' 啟動SW
    Set swApp = CreateObject("SldWorks.Application")
    ' 初始化变量
    SavedFilesCount = 0
    HeaderRow = 2
    RowNumber = HeaderRow
   
    ' 读取Excel中的文件路径和名称
    Do While Not (Cells(RowNumber, 1).value = "" Or Cells(RowNumber, 1).value = 0 Or IsEmpty(Cells(RowNumber, 1).value))
        PathName = Cells(RowNumber, 1).value
        FileName = Cells(RowNumber, 2).value
        
        ' 根据文件扩展名确定文件类型
        If UCase(Right(FileName, 3)) = "PRT" Then swFileTYpe = 1
        If UCase(Right(FileName, 3)) = "ASM" Then swFileTYpe = 2
        If UCase(Right(FileName, 3)) = "DRW" Then swFileTYpe = 3
        
        ' 打开文件
        Set swDoc = Nothing
    If Dir(PathName & FileName) <> "" Then
        Set swDoc = swApp.OpenDoc(PathName & FileName, swFileTYpe) '開啟檔案
    End If
        If Not swModel Is Nothing Then
            ' 遍历特征
            Set swFeat = swModel.FirstFeature
            Do While Not swFeat Is Nothing
                Featname = swFeat.GetName2(False, False, False)
                For i = LBound(Engnames) To UBound(Engnames)
                    If InStr(1, Featname, Engnames(i), vbTextCompare) > 0 Then
                        OldName = Featname
                        Featname = Replace(Featname, Engnames(i), Chsnames(i))
                        swFeat.SetName2 Featname, False, False, False
                    End If
                Next i
                Set swFeat = swFeat.GetNextFeature
            Loop
            ' 保存并关闭文档
            swModel.ForceRebuild3 (False)
            swModel.Save
            swApp.CloseDoc swModel
            Set swModel = Nothing
            SavedFilesCount = SavedFilesCount + 1
        End If
        RowNumber = RowNumber + 1
    Loop
    MsgBox "没有有效的活动文档"
    Set swApp = Nothing
End Sub
作者: 245793721    时间: 2024-4-11 10:51
SW转CAD老是字体不对  烦
作者: 1360321994    时间: 2024-4-12 09:59
245793721 发表于 2024-4-11 10:51
SW转CAD老是字体不对  烦

设置一下转出字体

1712887069743.jpg

作者: hjh2003    时间: 2024-4-14 18:06
活到老学到老!
作者: yni621    时间: 2024-4-21 17:23
感谢楼主分享,很不错!




欢迎光临 SolidWorks机械工程师网——最大的SolidWorks学习平台 (https://www.swbbsc.com/) Powered by Discuz! X3.2