Skip to content

Commit

Permalink
upgrade 排口定点输入.py
Browse files Browse the repository at this point in the history
  • Loading branch information
guitarliu authored May 7, 2020
1 parent 6ecb8d5 commit e3f8424
Showing 1 changed file with 70 additions and 0 deletions.
70 changes: 70 additions & 0 deletions 排口定点输入(可视化输入).py
Original file line number Diff line number Diff line change
@@ -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")

0 comments on commit e3f8424

Please sign in to comment.