From e3f84243cffe12a37c6737c0117e0b4c100b902a Mon Sep 17 00:00:00 2001 From: guitarliu <42517120+guitarliu@users.noreply.github.com> Date: Thu, 7 May 2020 19:18:20 +0800 Subject: [PATCH] =?UTF-8?q?upgrade=20=E6=8E=92=E5=8F=A3=E5=AE=9A=E7=82=B9?= =?UTF-8?q?=E8=BE=93=E5=85=A5.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6\345\214\226\350\276\223\345\205\245).py" | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 "\346\216\222\345\217\243\345\256\232\347\202\271\350\276\223\345\205\245(\345\217\257\350\247\206\345\214\226\350\276\223\345\205\245).py" diff --git "a/\346\216\222\345\217\243\345\256\232\347\202\271\350\276\223\345\205\245(\345\217\257\350\247\206\345\214\226\350\276\223\345\205\245).py" "b/\346\216\222\345\217\243\345\256\232\347\202\271\350\276\223\345\205\245(\345\217\257\350\247\206\345\214\226\350\276\223\345\205\245).py" new file mode 100644 index 0000000..2ed6a00 --- /dev/null +++ "b/\346\216\222\345\217\243\345\256\232\347\202\271\350\276\223\345\205\245(\345\217\257\350\247\206\345\214\226\350\276\223\345\205\245).py" @@ -0,0 +1,70 @@ +# coding: UTF-8 + +import os, re +from openpyxl import * +from dxfwrite import DXFEngine as dxf + +os.system("") + +def is_number(num): + ''' + :param num: 数值——用来判断是否为浮点数 + :return: + ''' + pattern = re.compile(r'^[-+]?[-0-9]\d*\.\d*|[-+]?\.?[0-9]\d*$') + result = pattern.match(str(num)) + if result: + return True + else: + return False +def create_cad(): + ''' + :return: a cad file(.dxf) + ''' + global cad_name + excel_name = input("\033[1;32m请输入Excel文件名称:(粘贴复制哦~)\033[0m") + pk_num = int(input("\033[1;32m请输入排口编号所在列号:\033[0m")) + pk_x_cood = int(input("\033[1;32m请输入排口横坐标所在列号:\033[0m")) + pk_y_cood = int(input("\033[1;32m请输入排口纵坐标所在列号:\033[0m")) + cad_name = input("请输入要保存的CAD文件名称:") + # draw a cad picture + drawing = dxf.drawing(os.getcwd() + "/%s.dxf" % cad_name) + # read excel datas + wb = load_workbook(os.getcwd() + "/" + excel_name + ".xlsx") + ws = wb.active + for row in ws.rows: + if row[pk_num-1].value != None and row[pk_x_cood-1].value != None and row[pk_y_cood-1].value != None \ + and is_number(row[pk_x_cood-1].value) == True and is_number(row[pk_y_cood-1].value) == True: + print(row[pk_num - 1].value, row[pk_x_cood - 1].value, row[pk_y_cood - 1].value) + x_cood = float(row[pk_x_cood-1].value) + y_cood = float(row[pk_y_cood-1].value) + pai_num = row[pk_num-1].value + circle = dxf.circle(2.0) + circle['layer'] = 'paikou' + circle['color'] = 2 + text = dxf.text(pai_num, (x_cood, y_cood), height=1.207) + text['layer']='paikou' + text['color'] = 2 + block = dxf.block(name='paikou') + block.add(circle) + drawing.blocks.add(block) + blockref = dxf.insert(blockname='paikou', insert=(x_cood, y_cood)) + drawing.add(blockref) + drawing.add(text) + + drawing.save() + +while True: + print("\033[1;34m【*】------------------------------------------------------------------------------------\n" + "【*】欢迎使用刘勇牌排口分布cad图生成器,请按照提示完全操作。I\n\n" + "【*】需事先准备一份Excel文件(仅支持格式为.xlsx),将其与该脚本放到同一个目录下。❤\n\n" + "【*】需按照提示分别输入Excel表格中排口编号、排口横坐标、排口纵坐标所在列号。U\n\n" + "【*】处理过程中会看到有哪些坐标及文件信息被写入到CAD文件中。Hong\n\n" + "【*】处理完成后在脚本所在当前目录下生成名为\"*.dxf\"的文件,可打开查看或作外部参照。Boss 囍\n" + "【*】------------------------------------------------------------------------------------\n\033[0m") + try: + create_cad() + print("\033[36;5m【✔】处理完成,请在当前目录下查找\"%s.dxf\"文件!\n" + "【✔】-----------------------------------------\n\033[0m" % cad_name) + except: + print("\033[1;31m列数必须为整数,且输入不能为空,请重新输入!\n\033[0m") \ No newline at end of file