明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1830|回复: 1

一起来学VB.net(4,调用net调用com对象)

[复制链接]
发表于 2012-9-7 17:50:36 | 显示全部楼层 |阅读模式
如果你添加了一个字体样式,那么查遍它所有的属性,并没有发现其对宽度因子的设置,那么只有调用VBA方法喽,下面是示例代码
  1. 引用:net接口
  2.       C:\Program Files\Autodesk\AutoCAD 2012 - Simplified Chinese\acdbmgd.dll
  3.       C:\Program Files\Autodesk\AutoCAD 2012 - Simplified Chinese\acmgd.dll
  4.       com接口
  5.       C:\Program Files\Common Files\Autodesk Shared\axdb18enu.tlb
  6.       C:\Program Files\Common Files\Autodesk Shared\acax18enu.tlb
  7. 配置:.netframework 4.0  CAD2012   VS2010


  8. Imports Autodesk.AutoCAD.Runtime
  9. Imports Autodesk.AutoCAD.ApplicationServices
  10. Imports Autodesk.AutoCAD.DatabaseServices
  11. Imports Autodesk.AutoCAD.EditorInput
  12. Imports Autodesk.AutoCAD.Geometry
  13. Imports Autodesk.AutoCAD.Interop.Common
  14. Imports Autodesk.AutoCAD.Interop


  15. Public Class class1
  16. <CommandMethod("aaaa")> _
  17.     Public Sub UpdateTextFont()
  18.         Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
  19.         Dim acCurDb As Database = acDoc.Database
  20.         Dim Mztilist As New List(Of String)
  21.         Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
  22.            '以net的访问方式判断是否存在已知字体样式
  23.             Dim Mtexttable As TextStyleTable = acTrans.GetObject(acCurDb.TextStyleTableId, OpenMode.ForRead)
  24.             For Each Id As ObjectId In Mtexttable
  25.                 Dim TblRec As TextStyleTableRecord = acTrans.GetObject(Id, OpenMode.ForRead)
  26.                 Mztilist.Add(TblRec.Name)
  27.             Next
  28.             '以com对象的方法添加字体样式
  29.             If Not Mztilist.Contains("JHZX") Then
  30.                 ' Dim Mjhst As New TextStyleTableRecord
  31.                 'Mjhst.Name = "JHZXaa"
  32.                 'Mjhst.BigFontFileName = "hztxt.shx"
  33.                 'Mjhst.FileName = "ros.shx"
  34.                 Dim thisdrawing As AcadDocument = CType(acDoc.AcadDocument, AcadDocument)
  35.                 Dim Mcomtext As AcadTextStyle = thisdrawing.TextStyles.Add("JHZXaa")
  36.                 Mcomtext.BigFontFile = "hztxt.shx"
  37.                 Mcomtext.fontFile = "ros.shx"
  38.                 Mcomtext.Width = 0.75
  39.                 thisdrawing.ActiveTextStyle = Mcomtext
  40.                 thisdrawing.Regen(AcRegenType.acActiveViewport)
  41.                 'Mtexttable.UpgradeOpen()
  42.                 'Mtexttable.Add(Mjhst)
  43.                 'acTrans.AddNewlyCreatedDBObject(Mjhst, True)
  44.             End If
  45.             'acCurDb.Textstyle = Mtexttable("JHZX")
  46.             'Application.SetSystemVariable("TEXTSTYLE", "JHZX")
  47.             ' HostApplicationServices.Current.FindFile("bigfont.shx", acCurDb, FindFileHint.FontFile)
  48.             acTrans.Commit()
  49.         End Using
  50.     End Sub
  51. end class
发表于 2012-9-16 12:16:29 | 显示全部楼层
收藏了,期待你的的下一讲!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 17:45 , Processed in 0.168255 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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