使用Python的ezdxf包,结合excel表中的坐标数据,绘制了变形图,表格,代码,结果如下:

  DK41+175 左上偏距 左上高程 拱顶偏距 拱顶高程 右上偏距 右上高程
422 上导第二层拱架完成 -4.1500 432.7640 2.5360 436.0970 8.9410 432.9830
502 中左 -4.2250 431.6110 2.463 435.5420 8.8860 432.4800
505 中右 -4.2250 431.4890 2.463 435.4140 8.8860 432.3400
513 下左 -4.0050 431.7810 2.4640 435.2430 8.8730 432.1680
513 下右 -4.0050 431.7810 2.4640 435.2430 8.8730 432.1680
524 仰拱开挖 -4.2020 431.4900 2.4450 435.1350 8.8580 432.0360
521 仰拱施作 -4.2030 431.4980 2.4460 435.1440 8.8580 432.0450
521 仰拱填充 -4.2030 431.4980 2.4460 435.1440 8.8580 432.0450
               
桩号 DK41+170 左上偏距 左上高程 拱顶偏距 拱顶高程 右上偏距 右上高程
423 上导第二层拱架完成 -4.0000 433.1260 2.5180 436.2240 9.1580 432.7990
505 中左 -3.9280 432.5530 2.5150 435.8470 9.1480 432.3630
511 中右 -3.9030 432.3970 2.4950 435.6880 9.1780 432.2580
517 下左 -3.8920 432.0230 2.4530 435.3750 9.1740 432.0220
518 下右 -3.9560 432.1540 2.4510 435.3440 9.1740 431.9920
519 仰拱开挖 -3.9540 432.1070 2.4480 435.3050 9.1690 431.9590
525 仰拱施作 -3.9500 432.0610 2.4490 435.2300 9.1650 431.8980
526 仰拱填充 -3.9480 432.0580 2.4460 435.2250 9.1610 431.8940
               
import ezdxf
import xlrd
from ezdxf import mathleft_x_list = []  #左上list,拱顶list,右上list,每个断面有8组数据
left_y_list = []
top_x_list=[]
top_y_list=[]
right_x_list=[]
right_y_list=[]duan_mian_shu = 2  #在此规定断面数
duan_mian_list = ['DK41+175','DK41+170']top_origin_y = []   #拱顶初始预留沉降量list,每个断面有一个数据color_index=[150,130,110,70,50,40,30,10]  #ACI 颜色参数,分别用于表示8个阶段gap = 10    #计算表格中两个表的纵向间隔
table = xlrd.open_workbook('/Volumes/MAC_DATA/张吉怀隧道软岩大变形[更新]/邓家坡资料/五工区1#横洞量测数据/一计算表.xlsx')
sheet = table.sheet_by_name('Sheet2')title_location=(-4,420) #绘图title位置a= math.ConstructionArc() #实例化ConstructionArc类的对象,用于使用其 3点画弧线 方法for j in range(0,duan_mian_shu):doc = ezdxf.readfile('OriginDxf.dxf')msp = doc.modelspace()left_x_list.clear()  #j表示每个断面,在开始一个断面的绘图前,清除之前的坐标数据left_y_list.clear()top_x_list.clear()top_y_list.clear()right_x_list.clear()right_y_list.clear()top_origin_y.append(sheet.cell(1+j*gap,8).value) #将拱顶初始沉降量加入此listfor i in range(0,8):left_x = sheet.cell(int((i+1)+j*gap),2).value #将每个cell的值输入坐标listleft_y = sheet.cell(int((i+1)+j*gap),3).valuetop_x = sheet.cell(int((i+1)+j*gap),4).valuetop_y = sheet.cell(int((i+1)+j*gap), 5).valueright_x = sheet.cell(int((i+1)+j*gap), 6).valueright_y = sheet.cell(int((i+1)+j*gap), 7).valueleft_x_list.append(left_x)left_y_list.append(left_y)top_x_list.append(top_x)top_y_list.append(top_y)right_x_list.append(right_x)right_y_list.append(right_y)b = a.from_3p(start_point=(right_x_list[i], right_y_list[i]),  #使用变量b接收ConstractionArc类对象,以使用其计算结果def_point=(top_x_list[i], top_y_list[i]),end_point=(left_x_list[i], left_y_list[i]))msp.add_arc(center=b.center,radius=b.radius,start_angle=b.start_angle,end_angle=b.end_angle,dxfattribs={'color': int(color_index[i])})  #绘制一个断面的8个弧线msp.add_circle((right_x_list[i], right_y_list[i]), radius=0.05) #在每个测点绘制圆圈msp.add_circle((top_x_list[i], top_y_list[i]), radius=0.05)msp.add_circle((left_x_list[i], left_y_list[i]), radius=0.05)msp.add_line(start=(top_x_list[0], top_y_list[0]),   #在初始的拱顶点向下画辅助线,便于后处理移动二衬图end=(top_x_list[0], top_y_list[0] - top_origin_y[j] / 1000))msp.add_text(text='邓家坡隧道1#横洞小里程{}断面上导变形图'.format(duan_mian_list[j]),dxfattribs={'height':0.65}).set_pos(p1=title_location,align='LEFT')doc.saveas('Plot/testPlot{}.dxf'.format(str(j+1)))print(left_x_list)
print(left_y_list)
print(top_x_list)
print(top_y_list)
print(right_x_list)
print(right_y_list)

使用Python操作CAD的dxf文件,批量绘制变形图的方法记录相关推荐

  1. python导出dxf图,使用Python操作CAD的dxf文件,批量绘制变形图的方法记录

    使用Python的ezdxf包,结合excel表中的坐标数据,绘制了变形图,表格,代码,结果如下: DK41+175 左上偏距 左上高程 拱顶偏距 拱顶高程 右上偏距 右上高程 422 上导第二层拱架 ...

  2. 三、使用Teigha.net打开CAD(.dwg/.dxf)文件,并显示到panel界面绑定事件

    目录 一.Teigha.net直接操作CAD(.dwg/.dxf)文件 01 .直接打开CAD(.dwg/.dxf) 02 .读取实体,修改后的CAD(.dwg/.dxf)文件进行保存 03 .Tei ...

  3. Allegro 从导入dxf文件中绘制outline板框的技巧

    Allegro 从导入dxf文件中绘制outline板框的技巧 首先从导入的dxf文件里单独copy板框出来 然后将板框dxf 层转化成outline层 菜单shape–compose shape ( ...

  4. pyautocad python 操作CAD文件

    python操作autocad,实现对dwg文件的操作 业务需求: 图纸的文件名存在引用,需要执行打开保存操作,自动保存图号为当前文件名 实现: 使用python+pyautocad 参考文章: ht ...

  5. Python工具脚本,PDF文件批量转图片(pdf图片提取器)工具(exe)

    前面写(抄袭)了一下转图片(提取图片)的源码,包括PDF文件以及PPT文件,这里本渣渣抽空进行了exe打包,打包的是pdf文件转图片,当然使用的gui还是python的tkinter库,仅供参考和学习 ...

  6. 关于python操作cad的2021-06-18

    之前写了"关于python通过pyautocad操作cad的2021-06-10",由于pyautocad根据图元生产面域的方法没找到,所以改用win32com.client了,找 ...

  7. python操作文本之CSV文件

    python 操作csv文件有两种方法,一种是使用pandas来读写csv文件,第二种是使用csv模块读写csv文件 一.pandas读写csv文件 1.df = pd.read_csv(filepa ...

  8. 使用Teigha(OpenDesign)操作CAD的dwg文件

    说起来,其实我自己也感觉这个要求挺奇怪的,Java操作CAD,好吧,目前比较完善的类库有一个是jdwglib,但是我没找到,而且公司刚好有OpenDesign的账号,因此,需要使用Teigha来进行操 ...

  9. revit图纸导出dxf文件批量修改

    本人最近在使用revit出图时遇到了导出为dxf文件的需求, 但revit图纸导出为dxf文件后, 布局中的视口大小与revit中视口大小不一致, 导致在autocad中打印出现问题, 经过与Auto ...

最新文章

  1. 关于xilinx fir use reloadable coefficient的用法
  2. yum 仓库 本地和在线
  3. 一个已婚女人,对于婚姻对于幸福的感悟
  4. Fabricjs使用Group实现组合对象
  5. java 线程模型_Java基础篇之Java线程模型
  6. CF1473E Minimum Path(拆点+最短路)
  7. P3501-[POI2010]ANT-Antisymmetry【hash,二分答案】
  8. mysql 过滤相同数据库_MySQL数据库查询中的重复记录过滤
  9. 活动安排问题的 动态规划和贪心算法
  10. (40)Gulp中使用BootStrap
  11. 禁用,元素设置为不可点击
  12. 深入学习Java虚拟机(三)
  13. JDK笔记-IO流读写
  14. mysql主从同步 忽略库_主从复制中忽略库的参数
  15. oracle wmsys.wm_concat ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB
  16. 老徐WEB:js入门学习 - javascript变量的数据类型
  17. 微信公众号答题功能搭建
  18. 微信开发者工具登录时tunneling socket could not be established
  19. 开放性:你可能没听说过的终极大挑战(开放性既是驱动探索智能的力量之一,也可能直接就是AI本身的组成部分)
  20. python元祖用法_Python中元祖的用法

热门文章

  1. Unity3d延时执行程序的方法
  2. IT运维——系统监控软件简介
  3. 小红书用户画像分析_电商平台用户画像分析
  4. 邮箱服务器搜索,【分享】如何从Exchange 服务器端搜索邮件
  5. 民俗学概论 复习资料
  6. ATA-L6水声功率放大器用于水声系统测试—西安电子测量仪器
  7. git、snv、repo等版本管理工具使用对比
  8. Vue 路由跳转至外界页面
  9. 关于VScode设置护眼色的方法
  10. DPDK实战之skeleton(basicfwd)