怎样用VC读取图形文件,R12格式的.DXF文件?

ivy_go 2002-03-29 09:41:51
我在做一个小型的电子地图,原来有一张施工图,我已经用CAD重做了现在已经把它转换成R12格式的.DXF文件,现在的问题是怎样读取图形文件中的数据,解析,并且画到窗体上;而且,能够支持一些常见的操作,例如,平移、缩放等。
...全文
241 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ivy_go 2002-04-14
  • 打赏
  • 举报
回复
我想该结帖了
谢谢大家!
ivy_go 2002-04-01
  • 打赏
  • 举报
回复
是啊,我用写字板打开DXF文件后就是这样:
0
SECTION
2
HEADER
9
$ACADVER
1
AC1009
9
$INSBASE
10
0.0
20
0.0
30
0.0
9
$EXTMIN
10
-32.968731907564518
20
-44.534789102050823
30
0.0
9
$EXTMAX
10
421.5525827486303
20
398.41027093514538
30
0.0
9
$LIMMIN
10
0.0
20
0.0
9
$LIMMAX
10
420.0
20
297.0
9
$ORTHOMODE
70
0
9
$REGENMODE
70
1
9
$FILLMODE
70
1
9
$QTEXTMODE
70
0
9
$MIRRTEXT
70
1
9
$DRAGMODE
70
2
9
$LTSCALE
40
1.0
9
$OSMODE
70
37
9
$ATTMODE
70
1
9
ivy_go 2002-03-29
  • 打赏
  • 举报
回复
我的图形相当简单,目前最复杂的不过是BLOCK图,不知道以后扩展会怎样,
只有点、线、圆角和道路旁一些固定的图标。
按你说的是不是要用一个类来定义图层、颜色、线性,
也就是做一个比较简单的绘图工具,
但是DXF码为30,40,是什么意思呢?
刚开始学习,请多指教
oyf888 2002-03-29
  • 打赏
  • 举报
回复
一般的实体好办,就是POLYLINE费劲一些,我好几年前做过这个事情,不过程序可能早找不到了,我只处理过POINT,LINE,ARC,CIRCLE,TRACE,SOLID,TEXT,POLYGON,其它的没做处理,只是跳过,你可能用一个基类来定义LAYER,COLOR,LINETYPE,还有DXF码为30,40的值。
oyf888 2002-03-29
  • 打赏
  • 举报
回复
DXF文件例:
...

LINE
8
0
62
1
10 --------X1
4.225425
20 ---------Y1
5.794789
30
0.0
11 -X2
4.224667
21 ---Y2
4.056092
31
0.0
0


TEXT
8 --------LAYER
0
10 -X
1.914895
20 -Y
7.138384
30
0.0
40
0.189
1 ----TEXT
大同二厂
41
0.7
0


ARC
8
0
10
7.010518
20
7.706052
30
0.0
40
0.354313
50
85.586018
51
85.181847
0
oyf888 2002-03-29
  • 打赏
  • 举报
回复
是10,20,30最基本的X,Y,Z坐标,11,21,31是X1,Y1,Z1,。。。

块我没单独处理过,我想你也可以定义一下,那样能省不少事情,不过速度也不会太快,但是要把块打碎了太点内存,我想你还是应该使程序能够处理块。

以后扩了也没关系,把你的类多加些就可以了。我有时间找一下我做过的程序,好象还能找到的。别急啊。
ivy_go 2002-03-29
  • 打赏
  • 举报
回复
谢谢你,
我应该先搜搜你们的帖子,下次不敢了
我马上去下DXF的文件格式学习学习

AutopVision 2002-03-29
  • 打赏
  • 举报
回复
基本上是个比较复杂的工作:
熟透DXF文件格式,每个实体的属性字段都要搞清楚。设计自己的DXF文件解析器(实际就为一个字符流文件按照"标记+值=一行"的读出过程),设计自己的图形对象,然后依据AutoCAD图形实体的属性信息(当然你可以取舍,因为你没必要实现强劲的图形修饰功能)创建自己的图形实体对象,把它画出来即可。需要注意的问题:图纸坐标的转换。
转——>
beegee(提头游于市--别怕,是我自己的猪头):
请下载Autodesk公司DXF文件的Docment,或随便找一本将AutoCAD二次开发的书,里面自有CAD的DXF码的简要说明,再用文本编辑器打开一个*.dxf文件,摸索摸索,你一定能搞出来!

ivy_go 2002-03-29
  • 打赏
  • 举报
回复
怎么没有人回答?
各位,谁能给我一点启发?
ivy_go 2002-03-29
  • 打赏
  • 举报
回复
怎么没有人回答?
各位,有能给我启示的嘛?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧