天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 85|回复: 0

AutoCAD图标提取

[复制链接]
  • TA的每日心情
    开心
    6 天前
  • 签到天数: 49 天

    [LV.5]常住居民I

    185

    主题

    150

    回帖

    1695

    积分

    管理员

    积分
    1695
    发表于 2024-3-31 10:23:12 | 显示全部楼层 |阅读模式
    1. Imports Autodesk.<a href="http://bbs.mjtd.com/forum-41-1.html" target="_blank" class="relatedlink">AutoCAD</a>.ApplicationServices
    2. Imports Autodesk.AutoCAD.Customization
    3. Imports Autodesk.AutoCAD.Runtime

    4. Public Class Class1

    5. CommandMethod("Test")> _
    6.     Public Sub Test()
    7.         ' 16×16图标路径
    8.         If IO.Directory.Exists(My.Application.Info.DirectoryPath + "\16") = False Then
    9.             IO.Directory.CreateDirectory(My.Application.Info.DirectoryPath + "\16")
    10.         End If
    11.         ' 32×32图标路径
    12.         If IO.Directory.Exists(My.Application.Info.DirectoryPath + "\32") = False Then
    13.             IO.Directory.CreateDirectory(My.Application.Info.DirectoryPath + "\32")
    14.         End If</font></font>
    15.        ' 通过系统变量获得菜单文件名称
    16.         Dim s As String = Application.GetSystemVariable("MENUNAME")
    17.         ' 获得该菜单文件的自定义节
    18.         Dim cs As CustomizationSection = New CustomizationSection(s)
    19.         ' 获得菜单组
    20.         Dim mg As MenuGroup = cs.MenuGroup
    21.         ' 遍历宏组
    22.         For i As Integer = 0 To mg.MacroGroups.Count - 1
    23.             ProcessMacroGroup(mg.MacroGroups(i))
    24.         Next
    25.     End Sub

    26.     'Public Sub ProcessMacroGroup(ByVal mg As MacroGroup)
    27.     '    ' 遍历菜单宏
    28.     '    For i As Integer = 0 To mg.MenuMacros.Count - 1
    29.     '        Dim mm As MenuMacro = mg.MenuMacros(i)
    30.     '        ' 获得宏
    31.     '        Dim m As Macro = mm.macro
    32.     '        ' 判断大图像是否存在
    33.     '        If m.LargeImageBitmap IsNot Nothing Then
    34.     '            ' 判断大图像是否正确,如果包含16说明大图像是采用小图像
    35.     '            If m.LargeImage.Contains("32") = True Then
    36.     '                m.LargeImageBitmap.Save(My.Application.Info.DirectoryPath + "\32" + m.LargeImage + ".png", System.Drawing.Imaging.ImageFormat.Png)
    37.     '            End If
    38.     '        End If
    39.     '        ' 判断小图像是否存在
    40.     '        If m.SmallImageBitmap IsNot Nothing Then
    41.     '            ' 判断小图像是否正确,如果包含32说明小图像是采用大图像
    42.     '            If m.SmallImage.Contains("16") = True Then
    43.     '                m.SmallImageBitmap.Save(My.Application.Info.DirectoryPath + "\16" + m.SmallImage + ".png", System.Drawing.Imaging.ImageFormat.Png)
    44.     '            End If
    45.     '        End If
    46.     '    Next
    47.     'End Sub

    48.     Public Sub ProcessMacroGroup(ByVal mg As MacroGroup)
    49.         ' 遍历菜单宏
    50.         For i As Integer = 0 To mg.MenuMacros.Count - 1
    51.             Dim mm As MenuMacro = mg.MenuMacros(i)
    52.             ' 获得宏
    53.             Dim m As Macro = mm.macro
    54.             ' 判断大图像是否存在
    55.             If m.LargeImageBitmap IsNot Nothing Then
    56.                 ' 判断大图像是否正确,如果尺寸包含16说明大图像是采用小图像
    57.                 If m.LargeImageBitmap.Width = 32 And m.LargeImageBitmap.Height = 32 Then
    58.                     ' 判断图像是否文件名称,如果是复制到内存再保存
    59.                     If m.LargeImage.Contains(".bmp") = True Then
    60.                         Dim ti As System.Drawing.Image = New System.Drawing.Bitmap(m.LargeImageBitmap)
    61.                         ti.Save(My.Application.Info.DirectoryPath + "\32" + m.LargeImage, System.Drawing.Imaging.ImageFormat.Bmp)
    62.                         ti.Dispose()
    63.                     Else
    64.                         m.LargeImageBitmap.Save(My.Application.Info.DirectoryPath + "\32" + m.LargeImage + ".png", System.Drawing.Imaging.ImageFormat.Png)
    65.                     End If
    66.                 End If
    67.             End If
    68.             ' 判断小图像是否存在
    69.             If m.SmallImageBitmap IsNot Nothing Then
    70.                 ' 判断小图像是否正确,如果尺寸包含32说明小图像是采用大图像
    71.                 If m.SmallImageBitmap.Width = 16 And m.SmallImageBitmap.Height = 16 Then
    72.                     ' 判断图像是否文件名称,如果是复制到内存再保存
    73.                     If m.LargeImage.Contains(".bmp") = True Then
    74.                         Dim ti As System.Drawing.Image = New System.Drawing.Bitmap(m.SmallImageBitmap)
    75.                         ti.Save(My.Application.Info.DirectoryPath + "\16" + m.SmallImage, System.Drawing.Imaging.ImageFormat.Bmp)
    76.                         ti.Dispose()
    77.                     Else
    78.                         m.SmallImageBitmap.Save(My.Application.Info.DirectoryPath + "\16" + m.SmallImage + ".png", System.Drawing.Imaging.ImageFormat.Png)
    79.                     End If
    80.                 End If
    81.             End If
    82.         Next
    83.     End Sub

    84. End Class
    复制代码

     

     

     

     

    AutoCAD图标提取
    哎...膜结构车棚,签到来了1...
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|中国膜结构网_中国空间膜结构协会

    GMT+8, 2024-5-17 15:58 , Processed in 0.086126 second(s), 22 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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