吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 680|回复: 6
收起左侧

[Python 原创] DXF文件图层信息查询

[复制链接]
phantomxjc 发表于 2024-10-21 10:21
[Python] 纯文本查看 复制代码
import ezdxf
import tkinter as tk
from tkinter import ttk, messagebox, simpledialog,filedialog


class demo(tk.Tk):
    def __init__(self):
        super().__init__()
        self.title("DXF信息核对")
        self.geometry("200x200")
        self.resizable(True, True)

        self.btn = tk.Button(text = '选择文件', command=self.count_elements_per_layer)
        self.text1 = tk.Text(height=20, width=60)
        self.label = tk.Label(text = 'DXF图层信息:')

        self.btn.grid(row=0, column=0)
        self.label.grid(row=1, column=0)
        self.text1.grid(row=2, column=0, columnspan=3)




    def count_elements_per_layer(self):
        dwg_file_path = filedialog.askopenfilename(title="选择DXF文件", filetypes=[("DXF文件", "*.dxf")])
        # 打开DWG文件
        doc = ezdxf.readfile(dwg_file_path)
        # 确保文件已正确打开
        if not doc:
            raise ValueError(f"无法打开文件: {dwg_file_path}")

          
        msp = doc.modelspace()
      
        layer_counts = {}

       
        for entity in msp.query():  # query() 方法可以返回所有实体
            # 获取实体的图层名
            layer_name = entity.dxf.layer
            # 如果图层名不在字典中,则初始化为0
            if layer_name not in layer_counts:
                layer_counts[layer_name] = 0
                # 增加该图层名的元素个数
            layer_counts[layer_name] += 1

        for layer_name, count in layer_counts.items():
            #print(f"Layer: {layer_name}, Elements: {count}")
            result_text = layer_name + ":" + str(count) + "\n"
            self.text1.insert('insert', result_text)

        print(result_text)


if __name__ == '__main__':
    app = demo()
    app.mainloop()


效果图:
1729477282745.png

免费评分

参与人数 1吾爱币 +5 热心值 +1 收起 理由
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ianlcc 发表于 2024-10-21 10:32
不错喔!
谢谢楼主的分享!
hqu8808 发表于 2024-10-21 10:40
 楼主| phantomxjc 发表于 2024-10-21 10:43
hqu8808 发表于 2024-10-21 10:40
楼主也做cad的二开?

我不做,我就是做点小玩意方便自己使用
hfhskf2005 发表于 2024-10-21 10:50
不错!
谢谢楼主分享
haiwi000 发表于 2024-10-21 14:13
这个有什么用?
wmz1973 发表于 2024-10-21 17:09
谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 15:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表