Geo Redes

Modelos de Redes - Modelos Territoriales - Modelos Matemáticos - Restituciones Fotogramétricas - Levantamientos Geodésicos

viernes, junio 22, 2007

Generación de un archivo AutoDesk, a partir de un archivo ArcView...

El siguiente Script, exporta una esctructura geométrica de origen ESRI, a formato DXF del entrono AutoDesk. Lenguaje Avenue Script

Script.The.SetNumberFormat("d.dddddd")

theFile = SELF.Get(0)
theShape = SELF.Get(1)
theLayerName = SELF.Get(2)
theShapeType = SELF.Get(3)
theShapeSize = SELF.Get(4)

if (theShapeType = "Point") then
theFile.WriteElt(" 0")
theFile.WriteElt("POINT")
theFile.WriteElt(" 8")
theFile.WriteElt(theLayerName)
theFile.WriteElt(" 10")
theFile.WriteElt(theShape.GetX.AsString)
theFile.WriteElt(" 20")
theFile.WriteElt(theShape.GetY.AsString)
theFile.WriteElt(" 30")
theFile.WriteElt("0.0")
elseif (theShapeType = "Polyline") then
theFile.WriteElt(" 0")
theFile.WriteElt("POLYLINE")
theFile.WriteElt(" 8")
theFile.WriteElt(theLayerName)
theFile.WriteElt(" 66")
theFile.WriteElt(" 1")
theFile.WriteElt(" 10")
theFile.WriteElt("0.0")
theFile.WriteElt(" 20")
theFile.WriteElt("0.0")
theFile.WriteElt(" 30")
theFile.WriteElt("0.0")
theFile.WriteElt(" 70")
theFile.WriteElt(" 0")
pointList = theShape.AsPolyLine.AsMultiPoint.AsList
for each vertex in pointList
theFile.WriteElt(" 0")
theFile.WriteElt("VERTEX")
theFile.WriteElt(" 8")
theFile.WriteElt(theLayerName)
theFile.WriteElt(" 66")
theFile.WriteElt(" 1")
theFile.WriteElt(" 10")
theFile.WriteElt(vertex.GetX.AsString)
theFile.WriteElt(" 20")
theFile.WriteElt(vertex.GetY.AsString)
theFile.WriteElt(" 30")
theFile.WriteElt("0.0")
end
theFile.WriteElt(" 0")
theFile.WriteElt("SEQEND")
theFile.WriteElt(" 8")
theFile.WriteElt(theLayerName)
elseif (theShapeType = "Polygon") then
theFile.WriteElt(" 0")
theFile.WriteElt("POLYLINE")
theFile.WriteElt(" 8")
theFile.WriteElt(theLayerName)
theFile.WriteElt(" 66")
theFile.WriteElt(" 1")
theFile.WriteElt(" 10")
theFile.WriteElt("0.0")
theFile.WriteElt(" 20")
theFile.WriteElt("0.0")
theFile.WriteElt(" 30")
theFile.WriteElt("0.0")
theFile.WriteElt(" 70")
theFile.WriteElt(" 1")
pointList = theShape.AsPolyLine.AsMultiPoint.AsList
for each vertex in pointList
theFile.WriteElt(" 0")
theFile.WriteElt("VERTEX")
theFile.WriteElt(" 8")
theFile.WriteElt(theLayerName)
theFile.WriteElt(" 66")
theFile.WriteElt(" 1")
theFile.WriteElt(" 10")
theFile.WriteElt(vertex.GetX.AsString)
theFile.WriteElt(" 20")
theFile.WriteElt(vertex.GetY.AsString)
theFile.WriteElt(" 30")
theFile.WriteElt("0.0")
end
theFile.WriteElt(" 0")
theFile.WriteElt("SEQEND")
theFile.WriteElt(" 8")
theFile.WriteElt(theLayerName)
end
return nil