获取DWG图纸块的属性字串

C语言库学习(四):用libredwg解析cad的dwg文件——第一版(qt) 开始 首先下载LibreDWG的源代码, git clone https://github.com/LibreDWG/libredwg.git 下载完成后,把src文件夹和include文件夹复制到qt工程目录下 jsmn文件夹是空的,也需要下载 git clone https://github.com/zserge/jsmn 第一次失败的尝试 第一次用libredwg-0.10.1.2969-w... 阅读详情

上次介绍了工程图里三种文本形式 http://blog.youkuaiyun.com/autodeskinventorapi/article/details/8524401。DWG图纸的块可以有属性文本。该文本是一种提示字串。Inventor API提供方法可访问到这些信息。

假定有这样一个AutoCAD图纸,其中有个块叫做myblock, 含有三个属性:aaa,bbb,ccc。最终显示的字串是:aaa-result, bbb-result,ccc-result. 以下VBA代码将获取相关信息:




Public Sub Test1()


    Dim oDoc As DrawingDocument
    Set oDoc = ThisApplication.ActiveDocument
    Dim oTags() As String
    Dim oValues() As String
    
    Dim oAcadBlkDef As AutoCADBlockDefinition
    Dim oCnt As Integer
    
    '获取块中属性的tag和提示字串
    Debug.Print ""
    For Each oAcadBlkDef In oDoc.AutoCADBlockDefinitions
        Call oAcadBlkDef.GetPromptTags(oTags, oValues)
        Debug.Print "Block Name=" & oAcadBlkDef.Name
        
        Dim i As Integer
        For i = LBound(oTags) To UBound(oTags)
            Debug.Print "Tag Name=" & oTags(i) & _
            " Prompt= " & oValues(i)
        Next
    
    Next
    

       '获取最终显示的字串
    Debug.Print "----------------------"
    Dim oAcadBlk As AutoCADBlock
    For Each oAcadBlk In oDoc.ActiveSheet.AutoCADBlocks
        Call oAcadBlk.GetPromptTextValues(oTags, oValues)
        Debug.Print "Block Name=" & oAcadBlk.Name
        For i = LBound(oTags) To UBound(oTags)
            Debug.Print "Tag Name=" & oTags(i) & _
            " Prompt= " & oValues(i)
        Next
    Next
    Debug.Print ""


End Sub


结果是:



Block Name=myblock
Tag Name=CCC Prompt= ccc
Tag Name=BBB Prompt= bbb
Tag Name=AAA Prompt= aaa
----------------------


这段代码很简单,但用.NET时需要注意一个细节,即GetPromptTags或GetPromptTextValues传入的数组在.NET中必须初始化。而且需要点技巧。参看以下代码:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

        ' 获取当前运行的Inventor. 

        Dim invApp As Inventor.Application  

  

        invApp = System.Runtime.InteropServices.Marshal.GetActiveObject("Inventor.Application")

        If invApp.ActiveDocument.DocumentType <> Inventor.DocumentTypeEnum.kDrawingDocumentObject Then

            MsgBox("Need to have a drawing document active")

            Return

        End If

 

        ' 获取当前工程图

        Dim oDrawingDoc As Inventor.DrawingDocument

        oDrawingDoc = invApp.ActiveDocument

 

        ' 得到AutoCADBlocks集合

        Dim cAcadBlocks As Inventor.AutoCADBlocks

        cAcadBlocks = oDrawingDoc.ActiveSheet.AutoCADBlocks

 

        Dim AcadBlockName As String

        AcadBlockName = "myblock"

 

        ' 获取我们关心的块

        Dim oAcadBlock As Inventor.AutoCADBlock

        oAcadBlock = cAcadBlocks.Item(AcadBlockName)

 

        ' 打印块的相关信息

        Debug.Print(oAcadBlock.Scale)

        Debug.Print(oAcadBlock.LineWeight)

        Debug.Print(oAcadBlock.Name)

        Debug.Print(oAcadBlock.AttributeSets.Count)

 

 

         

        ' 访问属性值

 

        '正确

        Dim sTags() AsString = New String() {}

        Dim sAttr() AsString = New String() {}

 

 

        '错误

        'Dim sTags() As String = New Object() {}

        'Dim sAttr() As String = New Object() {}

 

        '如果预先知道属性个数,例如有23个,则以下初始化也对

        ' are no more than 23

        'Dim sTags(23) As String

        'Dim sAttr(23) As String

 

        '不做任何初始化,错误

        'Dim sTags() As String

        'Dim sAttr() As String

 

 

        '得到最终显示字串

        oAcadBlock.GetPromptTextValues(sTags, sAttr)

 

        Dim i AsInteger

        Dim iCount AsInteger

        iCount = UBound(sTags)

        Debug.Print("icount = " & iCount)

 

        ' 依次打印

        For i = 0 To iCount

            MsgBox(sTags(i) & " = " & sAttr(i))

            i = i + 1

        Next

 

    End Sub




利用AutoCAD I/O 和View & Data 做DWG图纸的无纸化签字 在几次活动中,听到有用户提及一些审批流程里,需要对DWG图纸签字,通常在图纸的标题栏里。标题栏中的文字项是Attribute,如果是文本好办,直接设置其TextString,而如果是签字,则只能打印出纸质的。能不能无纸化签字,甚至不需要安装AutoCAD做签字呢?利用 AutoCAD I/O 和View & Data,这个成为了可能。 节前利用零星时间写了个程序, 阅读详情

相关推荐

AutoCAD块属性提取

使用Visual studio c#为例 首先在项目资源窗口右键选Referece添加AutoCAD 2018 Type Library 添加后using AutoCAD using AutoCAD; 跟块相关的代码核心如下 AcadApplication acad = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application"); AcadDocument doc = acad.ActiveDocument; AcadMode

Aerstiin的专栏 2118

python获取cad已有块属性

elif "*Paper_Space"==block.Name: # 布局1。elif "*Paper_Space0"==block.Name:#布局2。run(r'G:\桌面\批量打印\测试.dwg')

cc605523的博客 806

AutoCAD图块属性读取并写入Excel表格(VB源程序)

读取AutoCAD图形中的图块的属性信息,并自动写入Excel文件中,非常实用。特别适合于读取AutoCAD文件中的表格信息。

提取DWG图纸中的图元信息

CAD二开

gg_GreenHand的博客 1557

提取CAD中多段线及块属性的VBA源码

提取CAD中多段线及块属性的VBA源码,可直接引用,用于提取文本等,很实用的

Java提取图片中的GPS信息,转化为高德地图坐标

Java代码,提取图片EXIF块中的GPS信息,转换为高德地图API的坐标,使用到metadata-extractor

DWG提取地理要素(JAVA)

本文提供了一种开源的解析dwg方法,舍去Autodesk和arcgis商用授权后对dwg的直接解析,使用librecad先将dwg转成dxf后再通过gdal解析。

weixin_43081649的博客 3998

PyTorch模型生产部署:ONNX/Triton导出与高可用架构实战

机器学习模型部署本质是训练环境与生产环境之间的运行时契约建立过程,涉及序列化协议、推理引擎兼容性、动态批处理及资源隔离等核心问题。ONNX凭借标准化算子集和跨框架支持,成为平衡兼容性、性能与可维护性的首选导出格式;Triton Inference Server则通过原生多框架支持、动态batching和热加载能力,显著提升GPU利用率与服务SLA保障水平。在金融风控、电商推荐等高要求场景中,基于ONNX+Triton+K8s的分层架构可稳定支撑千级QPS与毫秒级P95延迟,同时满足模型热更新、可观测性与版本

weixin_33857679的博客 448

FME提取dwg扩展属性的通用方法,以提取CASS码为例,手把手详细版,dwg提取扩展属性,CAD提取地理编码,dwg提取地理编码,CAD提取扩展属性

基于FME开发提取dwg数据的CASS码工具的详细教程,提取其他dwg扩展属性,例如房屋层数、宗地代码等,操作方法一致,可参照本教程编写

GIS数据批量处理、质检工具开发 6883

戴维南和诺顿定理到底怎么选?一个实际维修案例讲透两种等效电路用法

本文通过工业电源模块维修案例,详细解析戴维南和诺顿定理在实际电路分析中的选择策略。针对电压敏感型故障、电流分配问题及功率传输异常,提供三大黄金法则,帮助工程师高效选择等效电路方法,提升故障排查效率。特别强调诺顿定理在电流分析中的优势。

weixin_31854867的博客 357

整理笔记——二极管

二极管是一种由半导体材料制成的一种具有单向导电性能的电子元器件,二极管的核心是PN结。加在二极管两端的电压和通关的电流被成为,二极管的伏安特性曲线​​​二极管的正向特性:起初正向电压较小时,正向电流几乎没有,称之为死区,此时二极管处于截止状态。当电压差超过截止电压(0.5V或者0.7V),电流随着电压上升,开始增加缓慢,随后急剧增大,二极管的电阻变小进入导通状态,此时电压变化较小。二极管的反向特性:起初反向电流很小,不随电压二变化,此时成为反向饱和电流;当方向电压达到二极管的反向击穿电压。

#include 811

c#读取dwg零件表_C#之CAD二次开发(17) AutoCAD .NET对象总结回顾

# 0. 引言 前面记录了一堆东西,涉及到AutoCAD .NET中的各种对象,感觉如果不整理一些还是挺乱的,善于总结是好习惯!在CAD中其实里面的所有的内容都可以看成是对象,不然C#这种面向对象的语言也不会在这里如鱼得水。其实每一个CAD文件(DWG或者是DXF)都对应了一个数据库(Database),之前也了解了,如果需要对CAD文件进行操作,先得声明一个数据库对象,也就是是数据库本身也就是一...

weixin_31136061的博客 2301

从机械臂示教到厨房做饭:ACT模仿学习如何让机器人更“人性化”?

本文探讨了ACT(Action Chunking with Transformers)模仿学习技术如何让机器人更“人性化”,特别是在厨房等复杂场景中的应用。通过动作分块(Action Chunking)和时态融合(Temporal Ensemble)技术,机器人能够像人类一样记忆和执行复杂任务,如烹饪。文章还分析了ACT在家庭场景中的落地挑战及其在康复医疗、柔性制造等领域的跨领域应用潜力。

weixin_30613343的博客 255

zdm各命令的功能和作用_ZDM命令 注释.doc

ZDM命令 注释一 绘制(通用功能类)ll 画线 jdcz 交点插矩形、插园 tx 画梯形sx 画扇形 dmx 画图折断线 ydx 画园柱折断线bzline 标记线 dxl 端点连线 rl 宽线、画槽钢、角钢、工字钢tyl 画点投影线 jt 制作箭头。 clb 画不等距表格tab 画等距表格 cjx 画矩形中心线cl 画园、弧中心线lc 画两线中...

weixin_42394257的博客 2180

Python对接海康威视机器视觉工业相机

工业相机只允许单条连接,也就是说MVS如果连接了相机,python代码就无法获取数据,此时必须。相机工具类(读者直接复制)HKCamera_class.py。博主这里出现了一个警告:获取不到相机参数。四、使用Pycharm打开Python代码示例文件夹。三、找到MVS示例代码(代码在MVS的安装位置)二、解压并安装MVS客户端。一、下载MVS客户端。安装一下opencv。

Good Luck 2万+

在工作台 LS-DYNA 中检索和变换反作用力分量

在结构仿真中,通常需要由施加的位移或速度边界条件产生的反作用力。此外,通常需要根据用户定义的坐标系解析反作用力分量。在本文中,详细介绍了在Workbench (WB) LS-DYNA 中,相对于用户定义的坐标系检索和变换反作用力分量的过程。

jkh920184196的博客 885

地籍cad的lisp程序大集合_AutoCAD-LISP程序100例

{:soso_e179:}AutoCAD-LISP程序100例.JPG (143.82 KB, 下载次数: 28)2011-10-18 14:42 上传有说明很好!顶如果您使用 AutoCAD,下面的内容对您一定有帮助。在某些方面能大大提高您的工作效率。下面的程序均以源程序方式给出,您可以使用、参考、修改它。bg.lsp --- 表格自动生成asc.lsp --- 将文本文件内容写入图中,字符是单...

weixin_39797686的博客 3439

AI原生应用架构师指南:系统化思维框架解析

随着ChatGPT、Stable Diffusion等AI技术的普及,「AI原生应用」(AI-Native Application)已从概念走向实践。传统应用以「功能逻辑」为核心(比如用代码写死的购物车规则),而AI原生应用以「数据+模型」为核心(比如根据用户行为动态推荐商品)。本文的目的是为架构师提供一套系统化思维框架如何区分「伪AI应用」和「真AI原生应用」?数据、模型、业务场景三者如何协同设计?架构师需要关注哪些关键技术节点?如何避免「为了AI而AI」的陷阱?

AI Python 编程之道的博客 491

lisp正负调换_LISP程序库

软件简介:如果您使用AutoCAD,下面的内容对您一定有帮助。在某些方面能大大提高您的工作效率。压缩包中含有以下面程序,且均以源程序方式给出,您可以使用、参考、修改它。解压缩后请先看说明文件。bg.lsp---表格自动生成asc.lsp---将文本文件内容写入图中,字符是单个的wf.lsp---将图中字符写入磁盘exstr.lsp---将字符串分解成单字pgtxt.lsp---...

weixin_39994665的博客 336

【RT-DETR有效改进】手把手带你调参RT-DETR,1:1复现官方版本实验环境

本文是带大家进行调参,利用ultralytics仓库1:1复现RT-DETR官方实验环境,从而在后期发表论文 的时候省去一些不必要的麻烦,例如被审稿人提出质疑,本文的调参内容均有依据,根据RT-DETR官方Github上发布的版本进行设置本文的调参以ResNet18为例,其余的何其的调参基本一致。RT-DETR剑指论文专栏,持续复现各种顶会内容——论文收割机RT-DETR。

Snu77的博客 9921

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

c打开文件夹对话框_CAD打开没有需要的字体?钢筋符号不会打?

绘图员的日常除了画图就是画图,作为一个较资深的画图员来说DWG文件打开没有字体,显示一串“?”或者“日文字符”的乱码,这些都遇见很多次了,已经从当初的青涩懵懂走了出来,再提起这些,我会拿出这份字体大全。◆ 这是几个单独编译的形字体文件,使用技巧: ① 把本字体复制到AUTOCAD程序文件夹中的FOUTS子文件夹;也可以同时把本字体复制到天正建筑、机械设计等程序文件夹的SYS子文件夹中。 ② 打...

weixin_34526348的博客 218

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

cad高程标注插件lisp_CADLISP程序,标高修改,管网标注,等一堆

CADLISP程序,标高修改,管网标注,等一堆:: u" a* j8 y, n# U0 l$ X/ U( G/ n8 t4 V用APPLOAD命令加载程序,然后使用命令。。。。% B2 m2 `) }3 t8 s7 b) w. e6 b( H, @( y2 y2 i! l如果您使用 AutoCAD,下面的内容对您一定有帮助。在某些方面能大大提高2 K" S" m: h% |d; H/ D* _...

weixin_35967330的博客 3763

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

zdm各命令的功能和作用_zdm软件命令大全.xls

zdm软件命令大全.xlszdm软件命令ZDM命令ll画线jdcz交点插矩形、插园tx画梯形sx画扇形dmx画图折断线ydx画园柱折断线bzline标记线dxl端点连线rl宽线、画槽钢、角钢、工字钢tyl画点投影线tyqxjt制作箭头。clb画不等距表格tab画等距表格cjx画矩形中心线cl画园、弧中心线lc画两线中心线kd画园孔洞zdj轴倒角jxkd绘矩形孔洞jxtc多边形填实arctc圆、弧填...

weixin_32694271的博客 3169

Kimi K2.5深度解析:专业文档理解的架构级进化

专业文档理解是企业AI落地的核心瓶颈,其本质是融合视觉排版、语义逻辑与领域知识的多模态认知过程。传统方法依赖OCR+纯文本建模,难以捕捉表格结构、跨页引用和隐性责任;而新一代模型如Kimi K2.5通过视觉-语义联合编码、分层稀疏注意力与静默化知识注入,实现从‘读文字’到‘懂文档’的范式跃迁。该技术显著提升合同审查、临床方案解读、设备维保等高价值场景的准确率与推理深度,尤其在多语言混排、手写批注、PDF嵌套表格等现实复杂文档中展现强鲁棒性。本文聚焦K2.5在真实业务中的能力边界、实操配置与避坑经验,为技术决

weixin_33901641的博客 536

java读取dwg图鉴信息_jdwglib

jdwglib/CVS/Entriesjdwglib/CVS/Entries.Extrajdwglib/CVS/Entries.Extra.Oldjdwglib/CVS/Entries.Oldjdwglib/CVS/Repositoryjdwglib/CVS/Rootjdwglib/dwg/CVS/Entriesjdwglib/dwg/CVS/Entries.Extrajdwglib/dwg/CV...

weixin_35598854的博客 1586

cad图纸解析java_用Java中的AutoCAD库来读取.dwg文件?

Is there any open-source Java or JavaScript library available to parse .dwg files and get the objects from it.I would like to extract data from a table of text for my project.It seems that the AutoCAD...

weixin_33814090的博客 2719
上一篇: 工程图里草图的文本字串
下一篇: 获取焊接的重量
autodeskinventorapi
博客等级 码龄14年 313粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值