001dxf文件导入设置
1、在closed image下加载dxf模块
2、建立DXF工作空间数据集
create_dxf_dataset( _optional ace_searchpath, dxf_dir_name, dxf_file_name, dxf_dataset_name, soc_definition_name )
例子:closed image
create_dxf_dataset( {"D:\gis_refinery\ds\ds_admin"}, "D:\gis_refinery\ds\ds_dxf", "dxf.ds", :dxf, :gis )
create_dxf_dataset( {"D:\gis_city\ds\ds_admin"}, "D:\gis_city\ds\ds_dxf", "dxf.ds", :dxf, :gis )
例子:open image
create_dxf_dataset()
3、在目标数据集中建立DXF数据模型
create_dxf_objects( _optional ace_searchpath, soc_definition_name, dataset_name )
smallworld_product.get_option(:soc)
create_dxf_objects()
create_dxf_objects( {"<database>\ds_admin"}, :dxf_soc, :my_dataset )
例子,在closed image状态下,在landbase数据集中建立dxf object
create_dxf_objects({"D:\gis_refinery\ds\ds_admin"},:gis,:landbase)
create_dxf_objects({"D:\gis_refinery\ds\ds_admin"},:gis,:gis)
create_dxf_objects({"D:\gis_city\ds\ds_admin"},:gis,:landbase)
create_dxf_objects({"D:\gis_city\ds\ds_admin"},:gis,:gis)
例子,在open image状态下,在landbase数据集中建立dxf object,
create_dxf_objects(_unset,:gis,:landbase)
create_dxf_objects(_unset,:gis,:gis)
4、从用户数据集中删除DXF数据模型
delete_dxf_objects( _optional ace_searchpath, soc_definition_name, dataset_name )
delete_dxf_objects()
delete_dxf_objects({"D:\gis_refinery\ds\ds_admin"},:gis,:landbase)
delete_dxf_objects({"D:\gis_refinery\ds\ds_admin"},:gis,:gis)
delete_dxf_objects({"D:\gis_city\ds\ds_admin"},:gis,:landbase)
delete_dxf_objects({"D:\gis_city\ds\ds_admin"},:gis,:gis)
5、为DXF对象几何建立style
create_dxf_object_styles( _optional style_searchpath )
create_dxf_object_styles()
拷贝styles到新的显示比例
copy_auto_dxf_styles_to_all_scales()
删除DXF对象style
delete_dxf_object_styles( _optional style_searchpath )
002激活dxf文件导入导出编辑器
激活dxf文件导入编辑器
g << gis_program_manager.applications[:gis]
$
g.activate_dxf_import_editor()
激活dxf文件导出编辑器
g.activate_dxf_export_editor()
$
003中文乱码转换
##从cp936转换到UTF8
##原始字符
o_str << g.current_geometry.string_buffer
$
o_str << rec.string_buffer
$
## 先将原字符用cp936编码
te << text_converter.new(:cp936, _true)
$
a_str << te.translate(o_str)
$
## 然后将用cp936编码过后的文字,用UTF8解码
td << text_converter.new(:UTF8,_false )
$
ss << td.translate(a_str)
$
004dxf对象乱码转换
#% text_encoding = cp936
_package user
#########################
# Start of Program List #
#########################
#!global_auto_declare?! << _true
$
_global chinese_convert <<
_proc()
## 转换dxf导入对象dxf_texts中文乱码
write("translate")
v << gis_program_manager.databases[:landbase]
tb << v.collections[:dxf_texts]
_for e _over tb.fast_elements()
_loop
##从cp936转换到UTF8
##原始字符
o_str << e.text.string_buffer
## 先将原字符用cp936编码
te << text_converter.new(:cp936, _true)
a_str << te.translate(o_str)
## 然后将用cp936编码过后的文字,用UTF8解码
td << text_converter.new(:UTF8,_false )
ss << td.translate(a_str)
e.text.string_buffer << ss
layer << e.layer
a_layer << te.translate(layer)
end_layer << td.translate(a_layer)
e.layer << end_layer
tb.update(e)
_endloop
v.commit()
_endproc
$
chinese_convert()
$
!global_auto_declare?! << _maybe
$
#########################
# End of Program List #
#########################