为了提高绘图效率, AutoCAD中提供了图块对象。在DXF中,图块定义在TABLES 区域,在ENTITIES区域通过INSERT组码存储图块调用信息。转换成SVG时,将图块定义用<defs>来组织,图块名作为每个defs元素的ID属性,使用<use>元素调用图块信息。这种方式支持图块的嵌套。
3.6 图层图层是AutoCAD中的一种非常有用的图形管理方式,将图形对象分门别类放在不同的图层中,便于用户管理、编辑和打印。在转换器中,实现了根据图层有选择转换图形,极大地增强了灵活性。
4 应用实例根据上述分析,笔者利用VB编程实现了二维矢量图形从DXF文件到SVG文件的转换,实现算法如下:
选择DXF文件后,进行DXF文件读,显示图形所包含的所有图层。
输入目标文件名。
选择要转换的图层。
进行DXF文件到SVG文件的转换:
首先对一个临时SVG文件进行初始化。
根据从DXF文件中读出的组码和组值判断对象的类型,不同类型的对象取得不同的属性。
进行必要的属性转换,对每个不同对象用SVG中相应的元素来描述。
将转换后的结果写到临时的SVG文件中。
将临时的SVG文件进行从ASCII码到Unicode编码的转换。
将Unicode编码以二进制方式写入目标文件。
图1 通过转换器转换后得到的SVG图形