Temos um script Python que importa arquivos AutoCAD DWG para classes de feição SDE. Esses arquivos DWG são criados por vários terceiros e nos são transmitidos para importação. Uma das etapas do nosso processo de importação é criar um arquivo PRJ para o DWG. Na maioria das vezes, isso funciona bem, mas cerca de 5% dos DWGs apresentam um problema ao tentar criar o arquivo PRJ. Usamos arcpy.DefineProjection_management para criar o PRJ e ele sempre executa, mas nem sempre cria o PRJ. Quando não cria, nenhum erro é lançado. O código simplesmente continua silenciosamente sem criar o PRJ. Alguém sabe qual pode ser o problema ou tem problemas semelhantes?
Versões do Python: 2.7 e 3.13.7
Versões do Arcpy: 10.9.1 e 3.6.4
Versão do SDE: 10.9.1
def project(strFullWorkingFilePath, dblScaleFactor):
try:
# Fator de Escala: ele é multiplicado pelo false northing e easting para mover o desenho.
# Use o tipo de dado Decimal em vez de float no cálculo da referência espacial.
sfi = Decimal(dblScaleFactor)
sf = Decimal(1.0)\/Decimal(sfi)
fe_4204 = Decimal(1968500.0) * Decimal(sf)
fn_4204 = Decimal(13123333.33333333) * Decimal(sf)
# Construa a string do sistema de coordenadas que será armazenada no arquivo PRJ do arquivo 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]]"
# Ferramenta: Define Projection cria o arquivo PRJ correto junto com o arquivo CAD.
arcpy.DefineProjection_management(strFullWorkingFilePath, Coordinate_System)