乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 120|回复: 1

[编程交流] 使用VB。Net和Autocad Elect

[复制链接]

16

主题

35

帖子

30

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
91
发表于 2022-7-6 21:44:19 | 显示全部楼层 |阅读模式
团队
 
我正在尝试用VB编写一个命令方法。Net for AutoCAD Electrical。我想打开一系列绘图,并将文字字体更改为ttf。以下代码的工作原理如下:
 
[列表]
  • 用户在命令管理器中输入CHANGEPROJECTTEXTSTYLEFONT
  • 弹出一个用户表单
  • 用户选择用户窗体上的按钮
  • 一个文件夹对话框出现,他们选择一个文件夹
  • 所有DWG文件都放入一个数组中
  • Autocad打开文件,一次打开一个,更改字体
    [/列表]
    这就是我的问题所在。在下一个文件打开之前,我不知道如何保存和关闭该文件。在使用Commit之后,我尝试执行CloseAndSave(acDoc,acDoc.Name),这给了我一个错误。知道我做错了什么吗?
     
    224421f3r3eeznrywfeyw8.png
     
    公共子变更项目TextStyleFont()
    '此堆栈存储要处理的目录。
    Dim stackElec作为新堆栈(字符串)
    Dim ResulteC作为新列表(字符串)
    Dim frmDialog As New FRMFolderBrowser对话框
    frmDialog。ShowDialog()
    '添加初始目录
    斯塔克莱克。推送(frmFolderBrowserDialog.locationOfProj)
    尺寸i为整数=0
    '继续处理每个堆叠目录
    Do While(stackElec.Count>0)
    '获取顶级目录字符串
    Dim dirElec As String=stackElec。流行音乐
    试试看
    '添加所有即时文件路径
    Resultech。AddRange(Directory.GetFiles(dirElec,“*.dwg”))
    '循环遍历所有子目录并将其添加到堆栈。
    Dim directoryName作为字符串
    对于目录中的每个目录名。GetDirectory(目录)
    斯塔克莱克。推送(directoryName)
    下一个
    捕获ex作为例外
    结束尝试
    回路
    对于ResulteC中的每个drawingFile作为字符串
    Dim strFileName As String=drawingFile
    Dim acDocMgr As DocumentCollection=应用程序。文档管理器
    Dim acDoc As Document=DocumentCollectionExtension。打开(acDocMgr、strFileName、False)
    Dim acCurDb As Database=acDoc。数据库
    “”获取当前文档和数据库,并启动事务
    '将acDoc作为文档=应用程序。DocumentManager。MdiActiveDocument
    应用程序。DocumentManager。MdiActiveDocument=acDoc
    系统。窗户。形式。应用DoEvents()
    “”锁定新文档
    使用acLckDoc作为DocumentLock=acDoc。LockDocument()
    使用tr作为事务=acCurDb。TransactionManager。StartTransaction()
    Dim tsTbl As TextStyleTable=TryCast(tr.GetObject(acCurDb.TextStyleTableId,OpenMode.ForRead),TextStyleTable)
    对于tsTbl中作为ObjectId的每个对象
    Dim tsTblRec As TextStyleTableRecord=TryCast(tr.GetObject(objId,OpenMode.ForWrite),TextStyleTableRecord)
    Dim textStyleName As String=tsTblRec。名称
    “”获取当前字体设置
    将acFont设置为Autodesk。AutoCAD。图形接口。字体描述符
    acFont=tsTblRec。字体
    “”使用“PlayBill”更新文本样式的字体
    将acNewFont设置为Autodesk。AutoCAD。图形接口。字体描述符
    acNewFont=新Autodesk。AutoCAD。图形接口。FontDescriptor(“Times New Roman”,False,False,acFont.CharacterSet,acFont.PitchAndFamily)
    tsTblRec。Font=acNewFont
    acDoc。编辑Regen()
    系统。窗户。形式。应用DoEvents()
    下一个
    “”将更改保存到数据库并关闭事务
    tr.提交()
    关闭并保存(acDoc,acDoc.Name)
    结束使用
    结束使用
    下一个
    末端接头

                                   
    登录/注册后可看大图
  • 回复

    使用道具 举报

    16

    主题

    35

    帖子

    30

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    91
    发表于 2022-7-6 23:03:21 | 显示全部楼层
    我找到了解决方法。这是CommandFlags。一场
    回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

    QQ|关于我们|小黑屋|乐筑天下 繁体中文

    GMT+8, 2025-3-4 16:41 , Processed in 0.951015 second(s), 59 queries .

    © 2020-2025 乐筑天下

    联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表