FME安装问题以及FME处理dwg代码示例

Posted rib-pet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FME安装问题以及FME处理dwg代码示例相关的知识,希望对你有一定的参考价值。

  1. FME 安装
    说明:这里采用的是FME2022的desktop的来处理和读取cad dwg文件 (曾今安装过去fme的,就需要全局删除所有fme的文件夹)
    https://www.zhihu.com/question/278356734
    https://www.xiazai99.com/down/soft266163.html
    https://www.cnblogs.com/alunzuishuai/p/16344909.html

获取crack 安装包
链接:https://pan.baidu.com/s/1CsJhsWzLjo6e7HBsVN0WWQ?pwd=yut5
提取码:yut5

1.1 安装 fme-flexnet-win-x64.msi 文件

安装完后,C:\\Program Files\\FlexServer

至此,需要检查hostid.txt文件不能有重复的网卡

1.1 生产safe.lic文件
解压crack文件夹

按上图,修改dummy.txt文件,修改hostid.txt 和网卡之后,执行命令行。生产新的safe.lic文件

  • 替换系统默认“C:\\Program Files\\FlexServer” safe.exe
  • 执行BatchFiles中的restartService.bat文件


若发现多个网卡,需要修改成一个。从hostid.txt文件获取



2. FME 常见错误
1、FME无法执行Active操作
2、如果安装arcgis之后,27000改端口被占用了,需要在safe.lic 加上端口号,重新加载safe.lic文件即可。

启动成功之后,方可安装“fme-desktop-2022.0-b22245-win-x64-beta.exe”


  1. FME 常见错误
    1、无法active,safe.lic文件生成的不对。按上面crack的流程执行即可

  2. IDEA 配置FME开发环境
    打开idea, new project



3. FME处理dwg,并读取cad里面的行政区划保护线
核心代码:
public static void main(String[] args) throws FMEException
try
_fmeSession = FMEObjects.createSession();
IFMEStringArray stringArray = _fmeSession.createStringArray();
stringArray.append(“FME_USE_RICH_GEOMETRY”);
stringArray.append(“yes”);

    _fmeSession.init(stringArray);

    FmeCreateReader("D:/fmeTest/src/com/guodi/01ljymq.dwg");
    IFMEFeature _fmeFeatureRead = _fmeSession.createFeature();


    while (_fmeReader.read(_fmeFeatureRead)) 
        String strLyr = GetFmeFeatureAttribute(_fmeFeatureRead, "autocad_layer").toUpperCase();
        System.out.println(strLyr);

        if (strLyr.equalsIgnoreCase("--文物保护线")) 
            IFMEGeometry geo = _fmeFeatureRead.getGeometry();

            // create visitor
            FmeCADDataVisitor visitor = new FmeCADDataVisitor();
            visitor.setFmeSession(_fmeSession);
            visitor.setFmeGeometry(geo);

            if (null != geo) 
                geo.acceptGeometryVisitor(visitor);
                if (geo instanceof IFMEPolygon || geo instanceof IFMELine || geo instanceof IFMEArc || geo instanceof IFMEEllipse ||
                        geo instanceof IFMEPath) 

                    String strHandle = GetFmeFeatureAttribute(_fmeFeatureRead, "autocad_entity_handle");
                    String strEntName = GetFmeFeatureAttribute(_fmeFeatureRead, "autocad_entity");
                    String strColor = GetFmeFeatureAttribute(_fmeFeatureRead, "autocad_color");

                    // collect dwg data items
                    DwgDataItem dwgItem = new DwgDataItem();
                    dwgItem.strColor = strColor;
                    dwgItem.strEntName = strEntName;
                    dwgItem.strHandle = strHandle;
                    dwgItem.geometry = visitor.geometry;

                    results.add(dwgItem);
                
            
        
        // handle next features right now
        _fmeFeatureRead = _fmeSession.createFeature();
    
 catch (FMEException ex) 
    System.out.println("FME初始化错误:" + ex.getMessage().toString());
    return;


_fmeReader.close();
_fmeReader.dispose();
_fmeReader = null;

最后结果如下:

FME实战教程002:FME完美实现CAD数据转shp案例教程(以三调土地利用现状数据为例)

FME完美实现CAD数据转shp案例教程(以三调土地利用数据为例)

文章目录


1. cad数据预览

2. 转换过程

(1)打开FME Desktop2020中文软件,点击【新建】。


(2)选择【生成工作空间】,点击【选择】。


(3)参数设置

主要参数设置如下:


具体参数设置如下:

①选择需要转换的dwg格式的CAD数据

②点击参数,选择【几何对象】


③选择格式:Esri shp


搜索并选择Shapefile。


④输出文件夹:选择一个文件夹,如C

⑤选择坐标系:根据数据实际情况选择,如高斯投影3°带35带。可以根据名称或描述去搜索。


⑥点击【确定】。

在以下选择要素类型对话框中,直接点击【确定】。


点击【运行】。


点击【运行】。


查看运行结果是否异常。


生成的Shapefile数据。

3. shp数据预览

将转换结果数据加载到ArcGIS中进行查看,完美!


坐标系统:


属性表:


【拓展阅读】:

CAD格式数据转ArcGIS数据方法总结

以上是关于FME安装问题以及FME处理dwg代码示例的主要内容,如果未能解决你的问题,请参考以下文章

fme扫描件处理终章,深度学习和fme的极致结合,自动分户,分类,并提取宗地代码作为户档案文件名

FME实战教程001:FME2020中文安装图文教程(附安装包下载)

如何使用 FME 处理 Kafka JDBC Sink 连接器

FME如何使用Python?

FME如何使用Python?

fme报错no module name pypdf2