GE Smallworld开发(002dxf文件导入)

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  #
#########################

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值