CASS交换文件分析V10.docx
《CASS交换文件分析V10.docx》由会员分享,可在线阅读,更多相关《CASS交换文件分析V10.docx(97页珍藏版)》请在冰豆网上搜索。
CASS交换文件分析V10
CASS
交换文件分析
编制:
Geoway产品团队
版本号:
V1.0
日期:
2013-9-4
版权声明
本文档版权由北京吉威时代软件技术有限公司所有。
任何形式的拷贝或部分拷贝都是不允许的,除非是出于有保护的评价目的。
本文档由北京吉威时代软件技术有限公司提供。
此信息只用于×××项目组的成员或咨询专家。
特别指出的是,本文档的内容在没有得到北京吉威时代软件技术有限公司书面允许的情况下不能被全部或部分泄露给任何其它单位。
文件修改记录
版本
日期
修改说明
修改人
V1.0
20130904
创建
赵丽欣
1文档简介
1.1文档目的
本文档旨在对CASS的数据数据交换文件和CASS的符号机制进行分析和介绍。
1.2传阅范围
产品服务内部人员。
1.3参考资料
表1参考资料表
编号
资料名称
出版单位/作者
备注
2综述
CASS为用户提供了多种文件形式的数字地图,除AutoCAD的后缀为dwg和dxf的文件外,还提供了CASS本身定义的后缀为cas的数据交换文件,cas文件帮助用户将数字地图导入GIS。
CASS的数据交换文件也为用户的其它数字化测绘成果进入CASS系统提供了方便。
CASS软件紧密结合GB/T7929-1995《1:
1000地形图图式》,具有直观的屏幕菜单,能以所见即所得的方式绘出地图符号。
CASS软件自带1:
1000的地形图符号,用户也可以根据自己需要添加自定义符号。
3CASS常用文件
了解cas交换文件之前,先了解CASS的几个常用文件,cas文件中的很多编码信息在这几个常用文件中定义。
3.1符号定义文件work.def
work.def将CASS中所有的符号划分为20个类别,按统一的格式记录定义各个符号,是CASS绘图部分的核心文件。
该文件每行代表一个符号,最后一行以“END”结束,用户可编辑这个文件,修改现有符号或加入新的符号,文件的具体内容见下图所示:
文件注释:
ØWork.def没有表头,也没有开始标识,从第一行开始就是记录行。
Ø从左到右各列分别代表:
CASS编码,符号所在图层,符号类别,第一参数,第二参数,符号说明。
Ø文件以“END”做为结束标识。
Ø不是所有的符号都有第一参数或第二参数。
不同符号的第一参数和第二参数所表示的内容也不相同。
见“CASS符号内部编码”。
3.2图元索引文件index.ini
该文件记录每个图元的信息,不管这个图元是不是主符号(骨架线),所谓图元是图形的最小单位,一个复杂符号可以含有多个图元。
文件文件内容示意如下:
文件注释:
Øindex.ini没有表头,也没有开始标识。
从第一行开始就是记录行。
Ø从左到右各列分别代表:
CASS7.0编码,主参数,附属参数,图元说明,用户编码,GIS表名
Ø图元只有点状和线状两种,如果是点状图元,主参数代表图块名,附属参数代表图块放大率;如果是线状图元,主参数代表线型名,附属参数代表线宽。
Ø“用户编码”提供给定义了自己的编码的用户,可用“数据处理”下的“生成用户编码”功能将“用户编码”写入每个图元的“厚度”属性。
3.3CodeField文件
CASS中有两套图层文件名称,一套是work.def中使用的“图层名称”,也是用户直接使用的图层名称。
另一套是Index.ini中定义的“GIS表名”。
在work.def和index.Ini文件中都列出了CASS编码和“图层名称”以及CASS编码和“GIS表名”的关系。
CodeField文件是个mdb数据库,数据库中以CASS中的“GIS表名”为mdb表名称,逐个定义了对应GIS表名中包含的CASS编码以及其他相关信息。
如下图为HYDPT的定义示意:
3.4Pat文件
是CAD的填充定义文件,定义了填充的样式,具体语法可以参考CAD帮助。
3.5Dwt文件
是CAD的模板文件,可以在其中定义字体、图层、以及加入线型。
3.6Attribute文件
是扩展属性定义文件,可为图元指定扩展属性项。
3.7ScreenMeny文件
为屏幕菜单的定义文件,定义了屏幕菜单的大项和子项。
4cas文件格式
CASS数据交换文件cas与图形的转换是双向的,任何其它平台的数据,只要能转换成CASS的数据交换文件,就可以导入CASS系统平台,CASS数据交换文件为纯文本文件。
其总体格式如下:
CASS交换文件中线状地物都有线型的定义,若用其他系统生成CASS交换文件,在线型栏中以“N”代替,成图时系统能自动依据编码选择相应的线型,如无匹配的线型,则默认为CONTINUOUS型。
文件正文从第四行开始,以图层为单位分若干独立的部分,层名称描述了实体在CAD中对应的“层名”,用中括号括起来,作为该图层区的开始行。
每个层内部又以实体类别划分开来,CASS交换文件共有POINT、LINE、ARC、CIRCLE、PLINE、TEXT、SPLINE、SPECIAL等8种实体类型,文件中每个层的每种实体类型部分以实体类型名为开始行,以字符串“nil为结束标志。
不同实体类型的图元,在*.cas文件中记录的信息也不尽相同,请见下文详述。
4.1点状地物(POINT)
可用单点表示的独立地物:
POINT
143901,0.339,1.000
-214.988,141.781,0.0000
e
nil
每个点状地物占两行:
第一行是“编码,旋转角,缩放比”,如上“不依比例支柱.墩(方)”符号所示,“143901”为符号的编码,“0.339”代表该符号逆时针旋转了0.339个弧度,“1.000”代表符号表示原大小;
第二行是点状地物的坐标。
4.2线段(LINE)
可用两点表示的线状地物,例如(控制点符号的分数线):
LINE
l31510,Continuous
99.523,55.474
93.523,55.474
Nil
每个LINE型地物占三行,
第一行为“编码,线型名”;
第二行为线段的起始坐标;
第三行为线段的终点坐标。
4.3弧线(ARC)
表示弧状地物,例如(一般房屋):
ARC
141101,Continuous,38.596,0.302205,2.5464
66.048,44.48
Nil
每一个ARC型地物占两行:
第一行为“编码,线型名,弧半径,起始角,终止角”,角度单位用弧度,以东方向为0,逆时针为正,
第二行为圆心坐标。
4.4圆(CIRCLE)
表示圆形地物,例如(水塔):
CIRCLE
152631,Continuous,28.190
90.202,56.904
nil
每一格CIRCLE型地物占两行:
第一行为“编码,线型名,半径(m)”,
第二行为圆心坐标。
4.5复合线(PLINE)
表示连续的线状地物,点数不定,例如(厕所):
PLINE
158800,Continuous,0.00,N,0.000
64.028,65.013,0.000
100.283,65.937,0.000
98.988,38.768,0.000
62.859,40.490,0.000
C
nil
每一条复合线所占的行数取决于复合线的结点数,
第一行说明了该复合线的一些特征,格式为“编码,线型名,线宽,拟合方式,附加值”,线宽的单位是毫米,代表复合线出图时的宽度;拟合方式有3种,“N”代表不拟合,“S”代表复合线要进行样条曲线拟合,“F”代表复合线进行过点曲线拟合;“附加值”的意义较多,一般为0,在表示依比例、宽度不定的平行双线(如:
围墙)时,“附加值”代表以米为单位的宽度信息;当表示陡坎时,“附加值”表示整个坎的高度;在表示房屋时,“附加值”表示房屋的层数;当表示等值线时表示等值线的高程值。
由第二行开始,依次是各结点的坐标,一个点占一行,直到出现一行头个字符为“c”或“E”时为止,其中,“E”表示该线状地物正常停止,“c”表示线状地物闭合,第一点和最末点相连。
4.6文字注记(TEXT)
表示文字注记说明,例如(鱼塘):
TEXT
(鱼),3.00,0.00
98.986,53.713,0.000
nil
每一组文字占两行:
第一行为“文字内容,字高(mm),旋转角(弧度,逆时针增加)”,
第二行为文字的起点即左下角坐标。
4.7特殊地物(SPECIAL)
用SPECIAL标识,表示CASS软件要用程序控制的复杂实体,其格式依地物的不同而改变,下面列出各种SPECIAL地物的格式:
1.控制点、高程点、水深点:
编码[,参数]
三维坐标
其中,“三维坐标”应包含高程信息。
当表示控制点时,“参数”代表控制点点名;当表示高程点时,没有“参数”;当表示水深点时,“参数”表示水深注记的倾斜角,单位是弧度,逆时针方向为正。
2.在ASSIST层生成的骨架线:
编码
第一点坐标
第一点坐标
……
坐标个数对应骨架线的结点个数,对于第10类地物,固定有四个坐标,如桥;对于第13类地物,固定有两个坐标,如宣传橱窗;对于第18类地物,坐标数不定,如电力线。
CASS7.0的地物类别见附录A。
3.界址线:
300000,宗地号,权利人,地类
第一点坐标
第一点坐标
……
界址线的编码是“300000”,宗地号、权利人、地类即使没有也不能省略逗号。
4.双线不规则地物,包括自然斜坡、不规则楼梯:
编码,第一条线拟合情况,第二条线拟合情况,连线方式
第一条线坐标
第一条线坐标
……
E
第二条线坐标
第二条线坐标
……
E
对于自然斜坡,第一条线指坡顶线,第二条线指坡底线;线的“拟合情况”在曲线拟合时为“F”、样条拟合时为“S”、不拟合时为“N”;两线间的短线如果以等分方式连接,“连线方式”为1,否则为0。
4.8样条线(SPLINE)
表示按标准B样条曲线拟合的线状地物,一般用在等值线,例如:
SPLINE
201101,Continuous,0.30,0.000
180.411,119.313,500.000
180.604,123.148,500.000
180.344,136.593,500.000
180.376,137.730,500.000
181.998,141.706,500.000
E
……
nil
每条样条线所占行数取决于该线结点数,第一行格式为“编码,线型名,拟合方式,容差”,容差表示样条线与给定点允许的差值,第二行开始是各结点坐标,最后一行是“E”或“C”,如为“E”,代表正常停止,如为“C”,表示闭合。
5CASS的符号添加
5.1CASS的符号机制
CASS软件启动后,将菜单文件,查询文件,工作文件等一系列系统文件读入内存,然后根据用户的操作,执行相关命令。
首先读取编译软件的菜单文件(acad.mns),再由菜单文件读取幻灯片(*.slb),形成可视化的屏幕菜单,当用户双击屏幕菜单中的图元,CASS会根据菜单调用工作文件(work.def)中的自定义命令,完成图形绘制。
在用户查询图元属性时,则会读取索引文件(index.ini),并返回相关的属性信息。
所以,开发CASS符号库首先要准备好相关的图块、线型、幻灯片等基础要素,然后修改三个关键文件将基础要素串接起来,使之形成完整的工作链。
5.2制作图块
可以在CAD或CASS中制作图块,制作图块时需要注意的问题:
1、制作的图块存放在dwg文件中,一个图块存放一个dwg文件。
2、CASS中使用的符号,对应DWG文件中并不是图块,而是图形。
需要再验证:
是否不用做成图块,只要画图形就可以了?
5.3制作线型
在CAD中制作线型。
5.4给符号赋编码
在Work.def文件中给新添加的符号添加自定义用户码。
5.5编辑索引文件
在index.ini文件中登记图元信息,自定义用户码,以便索引、查找。
5.6编辑幻灯片
为绘图时直观,可制作幻灯片,使其显示于屏幕菜单中。
(1)打开绘制好的图块,并置于屏幕中央,在命令行中,用mslide命令制作幻灯片并将幻片保存在临时文件temp中,指定文件名为**.sld(注:
此时的文件名一定要与菜单文件中所设的幻灯片名一致)。
(2)然后在DOS状态下,进入幻灯片保存目录,将该目录下的sld文件打包并重命名。
如下所示进行操作:
A.进入幻灯片保存的目录,(假设幻灯片保存在C:
\Temp路径下),
B.找出该目录下所有的*sld幻灯片文件,并打包,打包文件为NEW.lst。
敲入命令符:
C:
\Temp>dir*.sld>NEW.lst
C.将AutoCAD安装目录下SLIDELIB.EXE文件复制到Temp文件夹里,将所有幻灯片打包成幻灯片库。
敲入命令:
C:
\Temp>slidelibcassk5.7编辑菜单文件
在制作完成新符号的幻灯片,确定新符号的编码后需要修改CASS的菜单文件(acad.mns),使新符号在屏幕菜单中显示出来。
菜单文件以分区的形式,包含整个CASS的固定菜单、弹出菜单、工具条、定点设备、屏幕菜单等,需要编辑的屏幕菜单以位于***IMAGE区。
菜单格式如下:
***IMAGE
**MZQUYU
[面状区域]
[cass51(jdbsc,界街道办事处)]^C^C^Pdd;340010;^P
[cass51(community,社区)]^C^C^Pdd;340020;^P
[cass51(basicgrid,单元网格)]^C^C^Pdd;340000;^P
**GONGYONG01
[公用设施]
……
如上面例子所示,***IMAGE为一级菜单,表示屏幕菜单从这里开始;****MZQUYU为二级菜单,其后紧接的[面状区域]为二级菜单名称;再其后为具体的菜单单元,[cass51(basicgrid,单元网格)]^C^C^Pdd;340000;^P中,cass51表示形文件的名称,basicgrid表示幻灯片的名称,“单元网格”是这一菜单项的说明性文字。
^C^C^Pdd;340000;^P是一串CAD命令,^C^C相当于ESC按键,^P相当于Enter按键,dd是CASS绘制命令,340000是所绘制符号的编码,最后的^P依然是回车;在后面的**GONGYONG01为第二个二级菜单。
屏幕菜单示例如下:
当在相应的菜单项上双击,即可根据编码调用相应的绘图函数来完成图形的绘制。
编辑菜单文件,将新符号按照上面的格式添加进去,即可有自定义符号的屏幕菜单。
6与GW的转换
将GW输出为cas文件时,一个GW的工程输出为一个cas文件。
cas文件和GW工程基本图元对比关系如下表所示:
图元类型
CAS构成要素
GW构成要素
备注
点状地物
编码、角度、缩放比
坐标
地物类、是否有向
点位坐标
CASS中不区分有向点和无向点,可以通过旋转角度和地物类判断。
线状地物
编码、线型
节点坐标
地物类
节点坐标
对应到GW的折线
弧线
编码,线型名,弧半径,起始角,终止角
圆心坐标
地物类
三个控制点
对应到GW的三点圆弧。
圆
编码、线型、半径
圆心坐标
地物类
多种参数表达方式,可以换算。
与GW中的矩形圆、三点圆、半径圆等。
复合线
编码、线型、线宽、拟合方式、附加值,
节点坐标。
地物类
节点坐标
GW中的椭圆、圆角矩形、正多边形等也对应到CASS的复合线。
文字注记
文字内容、字高、旋转角
文字左下角起始坐标。
地物类
字高、字宽等信息。
CASS中不对注记赋编码。
特殊地物
不同类型构成要素不同
等同于GW的程序符号。
样条曲线
暂无信息
暂无信息
cas中大部分特殊地物符号表达方法和GW中的程序符号类似,基本可以实现按编码对照。
对比示意如下:
待补充…
7转换存在的问题
1、电力线端点是否绘制电杆,类似信息在cas文件中没有参数控制,估计转换时会有偏差。
2、铁路等双线,看做线型,基本可以按编码对应。
但当GW中实际数据为双线时,转换会存在问题。
另外,cas的双线以其中一条边为骨架线,而GW是以中心线为骨架线,估计转换时会有偏差。
3、cas文件中队注记信息只记录了文字内容、字高、旋转角。
GW中注记信息的字宽、字体、斜体等信息无法表达。
8附录1CASS符号内部编码
所有符号按绘制方式的不同分为0—20类别,各类别定义如下:
1——不旋转的点状地物,如路灯,第一参数是图块名,第二参数不用;
2——旋转的点状地物,如依比例门墩,第一参数是图块名,第二参数不用;
3——线段(LINE),如围墙门,第一参数是线型名,第二参数不用;
4——圆(CIRCLE),如转车盘,第一参数是线型名,第二参数不用;
5——不拟合复合线,如栅栏,第一参数是线型名,第二参数是线宽;
6——拟合复合线,如公路,第一参数是线型名,第二参数是线宽,画完复合线后系统会提示是否拟合;
7——中间有文字或符号的圆,如蒙古包范围,第一参数是圆的线型名,第二参数是文字或代表符号的图块名,其中图块名需要以“gc”开头;
8——中间有文字或符号的不拟合复合线,如建筑房屋,第一参数是圆的线型名,第二参数是文字或代表符号的图块名;
9——中间有文字或符号的拟合复合线,如假石山范围,第一参数是圆的线型名,第二参数是文字或代表符号的图块名;
10——三点或四点定位的复杂地物,如桥梁,用三点定位时,输入一边两端点和另一边任一点,两边将被认为是平行的;用四点定位时,应按顺时针或逆时针顺序依次输入一边的两端点和另一边的两端点;绘制完成会自动在ASSIST层生成一个连接四点的封闭复合线作为骨架线;第一参数是绘制附属符号的函数名,第二参数若为0,定三点后系统会提示输入第四个点,若为1,则只能用三点定位;
11——两边平行的复杂地物,如依比例围墙,骨架线的一边是白色以便区分,第一参数是绘制附属符号的函数名,第二参数时缺省的两平行线间宽度,该值若为负数,运行时将不再提示用户确认默认宽度或输入新宽度;
12——以圆为骨架线的复杂地物,如堆式窑,第一参数是绘制附属符号的函数名,第二参数不用;
13——两点定位的复杂地物,如宣传橱窗,第一参数是绘制附属符号的函数名,第二参数如为0,会在ASSIST层上生成一个连接两点的骨架线;
14——四点连成的地物,如依比例电线塔,第一参数是绘制附属符号的函数名,如不用绘制附属符号则为“0”,第二参数不用;
15——两边平行无附属符号的地物,如双线干沟,第一参数是右边线的线型名,第二参数是左边线的线型名,
16——向两边平行的地物,如有管堤的管线,第一参数是中间线的线型名,第二参数是两边线的距离;
17——填充类地物,如各种植被土质填充,第一参数是填充边界的线型,第二参数若以“gc”开头,则是填充的图块名,否则是按阴影方式填充的阴影名,如果同时填充两种图块,如改良草地,则第二参数有两种图块的名字,中间以“-”隔开;
18——每个顶点有附属符号的复合线,如电力线,第一参数是绘制附属符号的函数名,第二参数若为1,复合线将放在ASSIST层上作为骨架线。
19——等高线及等深线,画前提示输入高程,画完立即拟合,第一参数是线型名,第二参数是线宽。
20——控制点,如三角点,第一个参数为图块名,第二个参数为小数点的位数。
0——不属于上述类别,由程序控制生成的特殊地物,包括高程点、水深点、自然斜坡、不规则楼梯、阳台,第一参数是调用的函数名,第二参数依第一参数的不同而不同。
CASS符号全部内部编码表:
地物名称
编码
图层
类别
参数一
参数二
实体类型
三角点
131100
KZD
20
gc113
3
SPECIAL,1
三角点分数线
131110
KZD
附
LINE
三角点高程注记
131111
KZD
TEXT
三角点点名注记
131112
KZD
TEXT
土堆上的三角点
131200
KZD
1
gc014
0
SPECIAL,1
小三角点
131300
KZD
20
gc114
2
SPECIAL,1
小三角点分数线
131310
KZD
附
LINE
小三角点高程注记
131311
KZD
TEXT
小三角点点名注记
131312
KZD
TEXT
土堆上的小三角点
131400
KZD
1
gc015
0
SPECIAL,1
导线点
131500
KZD
20
gc115
2
SPECIAL,1
导线点分数线
131510
KZD
附
LINE
导线点高程注记
131511
KZD
TEXT
导线点点名注记
131512
KZD
TEXT
土堆上的导线点
131600
KZD
1
gc167
0
SPECIAL,1
埋石图根点
131700
KZD
20
gc116
2
SPECIAL,1
埋石图根点分数线
131710
KZD
附
LINE
埋石图根点高程注记
131711
KZD
TEXT
埋石图根点点名注记
131712
KZD
TEXT
不埋石图根点
131800
KZD
20
gc117
2
SPECIAL,1
不埋石图根点分数线
131810
KZD
附
LINE
不埋石图根点高程注记
131811
KZD
TEXT
不埋石图根点点名注记
131812
KZD
TEXT
水准点
132100
KZD
20
gc118
3
SPECIAL,1
水准点分数线
132110
KZD
附
LINE
水准点高程注记
132111
KZD
TEXT
水准点点名注记
132112
KZD
TEXT
GPS控制点
133000
KZD
20
gc168
3
SPECIAL,1
GPS控制点分数线
133010
KZD
附
LINE
GPS控制点高程注记
133011
KZD
TEXT
GPS控制点点名注记
133012
KZD
TEXT
天文点
134100
KZD
20
gc112
2
SPECIAL,1
天文点高程注记
134111
KZD
TEXT
一般房屋
141101
JMD
5
continuous
0
PLINE
砼房屋
141111
JMD
8
continuous
砼
PLINE
砖房屋
141121
JMD
8
continuou