vcasp
路人甲
路人甲
  • 注册日期2006-07-03
  • 发帖数34
  • QQ
  • 铜币230枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1532回复:3

请教关于dxf文件导入sde的问题

楼主#
更多 发布于:2006-07-30 22:36
<P>最近一直在研究这个问题,苦思不得结果,请高人指点一二</P>
<P>在ArcMap 9.0里,可以很轻松地将dxf 文件转换成四个shape文件,分别是点、</P>
<P>线、面、标注层,</P>
<P>现在需要在AO里用程序读出dxf文件里的四个层,然后分别存入sde的四个featureclass</P>
<P>最大的问题还是不知道怎么读取dxf的标识,判断哪是点层的数据,哪是面层的数据</P>
<P>dxf文件的格式的文章也看过不少,但是感觉都是很空泛地谈,针对性不强</P>
<P>请哪位有经验的高人指点一二,感激不尽,已经想了很久都不知如何下手,</P>
<P>若有相关代码,能发到我的信箱<a href="mailtboatdream@126.com" target="_blank" >boatdream@126.com</A>,感激涕零</P>
喜欢0 评分0
sphinxo
路人甲
路人甲
  • 注册日期2005-07-04
  • 发帖数15
  • QQ
  • 铜币210枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2006-08-01 14:52
<P>Private Sub Command1_Click()<BR>On Error GoTo EH:</P>
<P>Dim pt As ITopologicalOperator</P>
<P>Set cadwf = New CadWorkspaceFactory<BR>Set cadws = cadwf.OpenFromFile("d:\", 0)<BR>Set cadFeatws = cadws</P>
<P>Set pFeatClass = cadFeatws.OpenFeatureClass("test.dxf:polyline")</P>
<P><BR>Set wf = New AccessWorkspaceFactory<BR>Set ws = wf.OpenFromFile("D:\Pipe.mdb", 0)</P>

<P>Set accfeatws = ws</P>
<P>Set fc = accfeatws.OpenFeatureClass("city_line1")</P>
<P>j = 1<BR>Set pfeaturecursor = pFeatClass.Search(Nothing, False)<BR>Set pfeature = pfeaturecursor.NextFeature</P>
<P>For k = 0 To 4800000<BR>'Do While Not pfeature Is Nothing<BR>If Not pfeature Is Nothing Then</P>
<P>If pfeature.Fields.FindField("Layer") <> -1 Then<BR>If pfeature.Value(pfeature.Fields.FindField("Layer")) = "地形" Then<BR>    If i > 70000 And j < 41 Then<BR>        i = 0<BR>        Set ws = wf.OpenFromFile("D:\Pipe" ; CStr(j) ; ".mdb", 0)<BR>        Set accfeatws = ws<BR>        Set fc = accfeatws.OpenFeatureClass("city_line1")<BR>        j = j + 1<BR>    End If</P>
<P>    Set p = fc.CreateFeature<BR>    Set pPoly = pfeature.Shape<BR>    DoEvents<BR>    If pPoly.Length > 0.1 Then<BR>    Set pt = pfeature.Shape<BR>        pt.Simplify<BR>        Set p.Shape = pfeature.Shape<BR>        p.Store<BR>        i = i + 1<BR>        Set p = Nothing<BR>    End If<BR>End If<BR>End If<BR>End If</P>
<P>EH:<BR>Set pfeature = pfeaturecursor.NextFeature<BR>'Loop<BR>Next</P>

<P>'Loop</P>
<P>MsgBox "done"</P>
举报 回复(0) 喜欢(0)     评分
cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5917
  • QQ14265545
  • 铜币29669枚
  • 威望217点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
2楼#
发布于:2006-08-02 09:08
<P>dxf 文件转换成四个shape文件</P>
<P>其实也丢失不少的东西了</P>
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
举报 回复(0) 喜欢(0)     评分
vcasp
路人甲
路人甲
  • 注册日期2006-07-03
  • 发帖数34
  • QQ
  • 铜币230枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2006-08-02 12:36
谢谢各位了,dxf文件转化成四个shape文件 一定会丢失一些东西么,有时候非得读出dxf文件里的某个featureclass,有方法不让丢失信息么再次谢谢了
举报 回复(0) 喜欢(0)     评分
游客

返回顶部