Tenemos un script de python que importa archivos DWG de AutoCAD a clases de entidades SDE. Estos archivos DWG son creados por varios terceros y nos son transmitidos para su importación. Uno de los pasos en nuestro proceso de importación es crear un archivo PRJ para el DWG. En su mayoría, esto funciona bien, pero alrededor del 5% de los DWG tienen un problema al intentar crear el archivo PRJ. Usamos arcpy.DefineProjection_management para crear el PRJ y siempre se ejecuta, pero no siempre crea el PRJ. Cuando no lo hace, no se lanza ningún error. El código simplemente continúa silenciosamente sin crear el PRJ. ¿Alguien sabe cuál podría ser el problema o ha tenido problemas similares?
Versiones de Python: 2.7 y 3.13.7
Versiones de Arcpy: 10.9.1 y 3.6.4
Versión de SDE: 10.9.1
def project(strFullWorkingFilePath, dblScaleFactor):
try:
# Factor de Escala: se multiplica por el false northing y easting para mover el dibujo.
# Usar tipo de dato Decimal en lugar de float en el cálculo de referencia espacial.
sfi = Decimal(dblScaleFactor)
sf = Decimal(1.0)\/Decimal(sfi)
fe_4204 = Decimal(1968500.0) * Decimal(sf)
fn_4204 = Decimal(13123333.33333333) * Decimal(sf)
# Construir la cadena del sistema de coordenadas que se almacenará en el archivo PRJ del archivo CAD.
Coordinate_System = "PROJCS['NAD_1983_StatePlane_Texas_South_Central_FIPS_4204_Feet',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting'," + str(fe_4204) + "],PARAMETER['False_Northing'," + str(fn_4204) + "],PARAMETER['Central_Meridian',-99.0],PARAMETER['Scale_Factor'," + str(sf) + "],PARAMETER['Standard_Parallel_1',28.38333333333333],PARAMETER['Standard_Parallel_2',30.28333333333333],PARAMETER['Latitude_Of_Origin',27.83333333333333],UNIT['Foot_US',0.3048006096012192]]"
# Herramienta: Define Projection crea el archivo PRJ correcto junto al archivo CAD.
arcpy.DefineProjection_management(strFullWorkingFilePath, Coordinate_System)