dxfedit/simple_debug.py
puzzlesion 91d0262300 Initial commit: Aspose.CAD for Python 问题分析与解决方案
- 完成多版本测试(22.2, 23.6, 24.12, 25.3)
- 发现API设计问题:无法访问CAD特定功能
- 提供5个解决方案,推荐使用ezdxf替代方案
- 创建完整的测试脚本和分析报告
- 包含详细的README文档
2025-09-02 15:08:09 +08:00

118 lines
4.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
简化的Aspose.CAD调试脚本
"""
import os
import sys
from pathlib import Path
def main():
print("=" * 60)
print(" Aspose.CAD 问题调试 ")
print("=" * 60)
try:
import aspose.cad as cad
from aspose.cad.fileformats.cad import CadImage
# 查找DWG文件
dwg_files = list(Path('.').glob('*.dwg'))
if not dwg_files:
print("未找到DWG文件")
return
test_file = str(dwg_files[0])
print(f"使用文件: {test_file}")
# 方法1使用CadImage.load
print("\n方法1使用CadImage.load")
try:
cad_image = CadImage.load(test_file)
print(f"成功加载,类型: {type(cad_image).__name__}")
# 检查属性
attrs = [attr for attr in dir(cad_image) if not attr.startswith('_')]
print(f"可用属性数量: {len(attrs)}")
# 查找可能包含实体的属性
entity_attrs = [attr for attr in attrs if 'entit' in attr.lower() or 'block' in attr.lower() or 'layer' in attr.lower()]
print(f"可能的实体属性: {entity_attrs}")
for attr in entity_attrs:
try:
value = getattr(cad_image, attr)
print(f" {attr}: {type(value).__name__}")
if hasattr(value, '__len__'):
print(f" 长度: {len(value)}")
except Exception as e:
print(f" {attr}: 访问失败 - {e}")
except Exception as e:
print(f"使用CadImage.load失败: {e}")
# 方法2使用Image.load
print("\n方法2使用Image.load")
try:
with cad.Image.load(test_file) as image:
print(f"成功加载,类型: {type(image).__name__}")
print(f"图像尺寸: {image.width} x {image.height}")
# 检查属性
attrs = [attr for attr in dir(image) if not attr.startswith('_')]
print(f"可用属性数量: {len(attrs)}")
# 查找可能包含实体的属性
entity_attrs = [attr for attr in attrs if 'entit' in attr.lower() or 'block' in attr.lower() or 'layer' in attr.lower()]
print(f"可能的实体属性: {entity_attrs}")
for attr in entity_attrs:
try:
value = getattr(image, attr)
print(f" {attr}: {type(value).__name__}")
if hasattr(value, '__len__'):
print(f" 长度: {len(value)}")
except Exception as e:
print(f" {attr}: 访问失败 - {e}")
except Exception as e:
print(f"使用Image.load失败: {e}")
# 方法3检查文件格式
print("\n方法3检查文件格式")
try:
file_format = cad.Image.get_file_format(test_file)
print(f"文件格式: {file_format}")
can_load = cad.Image.can_load(test_file)
print(f"可以加载: {can_load}")
except Exception as e:
print(f"检查文件格式失败: {e}")
# 方法4尝试导入CAD实体类
print("\n方法4尝试导入CAD实体类")
try:
from aspose.cad.fileformats.cad.cadobjects import CadLine
print("成功导入CadLine")
# 尝试创建CadLine实例
line = CadLine()
print(f"成功创建CadLine实例: {type(line).__name__}")
# 检查CadLine的属性
line_attrs = [attr for attr in dir(line) if not attr.startswith('_')]
print(f"CadLine可用属性: {line_attrs}")
except Exception as e:
print(f"导入CadLine失败: {e}")
except Exception as e:
print(f"调试失败: {e}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
main()