python:ezdxf——如何使用

python:ezdxf——如何使用

2023年7月10日发(作者:)

python:ezdxf——如何使⽤⽂章⽬录⼀、基本⽂件⼀般先决条件:import ezdxfdoc = le("your_dxf_")msp = pace()1、设置/获取标头变量ezdxf有⼀个接⼝来获取和设置标头变量:['VarName'] = valuevalue = ['VarName']2、设置DXF绘图单元使⽤此头变量设置CAD应⽤程序的默认单元,打开DXF⽂件。此设置与ezdxfAPI调⽤,对于长度值和坐标是不单位的,对于⾓度(在⼤多数情况下)是⼗进制度。成套绘图单元:$度量值控制当前绘图是否使⽤帝国或公制舱⼝模式和线型⽂件:['$MEASUREMENT'] = 101英语公制$LUNITS设置⽤于创建对象的线性单元格式:['$LUNITS'] = 212345科学⼗进制(默认)⼯程学建筑分数$AUNITS为⾓度设置单元格式:['$AUNITS'] = 00123⼗进制度/分/秒格蕾弧度$INSUNITS设置AutoCAD设计中⼼块的默认绘图单元:['$INSUNITS'] = 6622324⽆单位⼨脚迈尔斯毫⽶厘⽶⽶计公⾥微英⼨⽶尔斯院⼦安格罗斯纳⽶级微⽶分度表曲⽬⾼度计千兆天⽂单位光年Parsecs美国调查脚美国调查英⼨美国调查场美国调查英⾥3、创建更具可读性的DXF⽂件(DXF漂亮打印机)DXF⽂件是纯⽂本⽂件,您可以使⽤每个处理较⼤⽂件的⽂本编辑器打开这个⽂件。但是要快速获得你想要的信息并不是⼀件容易的事。创建⼀个更具可读性的HTML⽂件(DXF漂亮打印机):这将⽣成⼀个HTML⽂件。您的dxf_与普通的DXF⽂件和DXF句柄相⽐,DXF实体之间的链接布局更好,这简化了DXF实体之间的导航。在0.8.3版中更改:⾃ezdxf以来v0.8.3,⼀个名为dxfpp将添加到Python脚本路径:usage: dxfpp [-h] [-o] [-r] [-x] [-l] FILE [FILE ...]positional arguments: FILE DXF files pretty printoptional arguments: -h, --help show this help message and exit -o, --open open generated HTML file with the default web browser -r, --raw raw mode - just print tags, no DXF structure interpretation -x, --nocompile don't compile points coordinates into single tags (only in raw mode) -l, --legacy legacy mode - reorders DXF point coordinates4、为模型空间设置初始视图/缩放若要显⽰以CAD应⽤程序窗⼝为中⼼的模型空间的任意位置,请将’*Active’Vport到这个位置。DXF属性定义模型空间中的位置,指定要查看的模型空间的区域。快捷功能:_modelspace_vport(height=10, center=(10, 10))⼆、DXF查看器1、A 360查看器问题Autodesk Web服务A 360似乎⽐AutoCAD桌⾯应⽤程序更挑剔,使⽤ezdxf⽀持的最新DXF版本可能会有所帮助,ezdxf⽀持的版本是DXF R2018(AC 1032)。2、DXF实体不在查看器中显⽰ezdxf如果不⾃动在实体中定位模型空间的主视图,则必须在TrueView 2020中执⾏“缩放到扩展”命令:在Autodesk在线查看器中:将这⼀⾏添加到代码中以重新定位主视图,调整中⼼(在模型空间坐标中)和⾼度(在绘图单元中)对您的需求的参数:_modelspace_vport(height=10, center=(0, 0))3、在AutoCAD加载时显⽰图像/XREFS如果要添加具有与现有绘图相对路径的XREFS和图像,并且它们没有⽴即在AutoCAD中显⽰,请更改标头变量。PROJECTNAME=′′到(不太)解决这个问题。⽤于dxfr2004及更⾼版本的ezdxf模板有PROJECTNAME=’'作为默认值。感谢⼤卫·布斯:如果IMAGEDEF中的⽂件名包含完整路径(在AutoCAD中是绝对的),那么它将在加载时显⽰,否则在使⽤XREF管理器⼿动重新加载之前它不会显⽰(报告不可读)。解决⽅法(在加载时显⽰图像)似乎是将完整的⽂件路径保存在DXF中,或者将其保存为DWG。到⽬前为⽌,还没有在加载时显⽰具有相对路径的图像的解决⽅案。4、为模型空间设置初始视图/缩放若要显⽰以CAD应⽤程序窗⼝为中⼼的模型空间的任意位置,请将’*Active’Vport到这个位置。DXF属性定义模型空间中的位置,指定要查看的模型空间的区域。快捷功能:_modelspace_vport(height=10, center=(10, 10))三、DXF内容⼀般先决条件:import ezdxfdoc = le("your_dxf_")msp = pace()1、获取/设置块引⽤属性块引⽤(Insert)可以具有附加属性(Attrib),这些都是简单的⽂本注释,并在块引⽤后⾯附加了⼀个关联的标记。迭代所有附加的属性:# get all INSERT entities with == "Part12"blockrefs = ('INSERT[name=="Part12"]')if len(blockrefs): entity = blockrefs[0] # process first entity found for attrib in s: if == "diameter": # identify attribute by tag = "17mm" # change attribute content按标记获取属性:diameter = _attrib('diameter')if diameter is not None: = "17mm"2、将XDATA添加到实体将XDATA添加为元组列表(组代码、值)set_xdata(),如果已经存在,则覆盖数据:('YOUR_APPID') # IMPORTANT: create an APP ID entrycircle = _circle((10, 10), 100)_xdata( 'YOUR_APPID', [ (1000, 'your_web_'), (1002, '{'), (1000, 'some text'), (1002, '{'), (1071, 1), (1002, '}'), (1002, '}') ])有关组代码的含义,请参见dxf参考部分。数字阶参考的DXF群码,有效组码在1000-1071范围内。⽅法get_xdata()将实体的扩展数据返回为Tags对象。3、从维度获取重写的DIMSTYLE值⼀般来说Dimension样式和配置属性存储在Dimstyle实体,但是可以单独重写每个维度实体的每个属性,则由DimstyleOverride对象,如以下⽰例所⽰:for dimension in ('DIMENSION'): dimstyle_override = de() # requires v0.12 dimtol = dimstyle_override['dimtol'] if dimtol: print(f'{str(dimension)} has tolerance values:') dimtp = dimstyle_override['dimtp'] dimtm = dimstyle_override['dimtm'] print(f'Upper tolerance: {dimtp}') print(f'Lower tolerance: {dimtm}')这个DimstyleOverride对象返回基础DIMSTYLE对象的值,如果维度中的值未被覆盖,或None如果该值既没有在DIMSTYLE中定义,也没有在维度中定义。4、覆盖维度的DIMSTYLE值与上⾯相同,DimstyleOverride对象还⽀持重写DIMSTYLE值。但是,仅仅覆盖这些值并不会影响维度实体的图形表⽰,因为CAD应⽤程序只显⽰关联的匿名块,其中包含维度实体上的图形表⽰为简单的DXF实体。呼叫render⽅法DimstyleOverride对象重新创建此图形表⽰形式。ezdxf,但是ezdxf 不⽀持所有维度类型和DIMVARS,以及结果会有所不同来⾃AutoCAD或BricsCAD渲染。dimstyle_override = de()dimstyle__tolerance(0.1)# delete associated geometry blockdel [ry]# recreate geometry blockdimstyle_()

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688931777a184860.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信