簡體   English   中英

使用Abaqus / Python腳本從多個Excel工作表中讀取XY坐標

[英]Read XY Coordinates from Multiple Excel Sheets Using Abaqus/Python Script

我有一堆CT掃描圖像。 使用Matlab處理(這些堆棧中的一幅圖像)CT掃描圖像后,我將每個不同邊界區域的XY坐標保存在不同的Excel工作表中,如下所示:

I = imread('myCTscan.jpeg');
BW = im2bw(I);
[coords, labeledImg] = bwboundaries(BW, 4, 'holes'); 
sheet = 1;
for n=1:length(coords);
    xlswrite('fig.xlsx',coords{n,1},sheet,'A1');
    sheet = sheet+1;
end

然后,下一步是導入這組坐標並將其繪制到Abaqus CAE Sketch中以進行有限元分析。 我發現我的工作流程是這樣的:

  1. 導入Excel工作簿
  2. 對於工作簿中的每個工作表:
    2.1。 對於每一行:讀取兩列以獲取xy坐標(每行都有兩列x和y坐標)
    2.2。 將每個xy坐標放入列表中
    2.3。 從列表中,使用樣條法繪制草圖
  3. 對工作簿中的其他工作表重復步驟2

我搜索了一會兒,發現是這樣的:

from abaqus import *
lines= open('fig.xlsx', 'r').readlines()
pointList= []
for line in lines:
    pointList.append(eval('(%s)' %line.strip()))
s1= mdb.models['Model-1'].ConstrainedSketch(name='mySketch', sheetSize=500.0)
s1.Spline(points= pointList)

但這只能從一張紙上讀取XY坐標,而我在上面的第3步中遇到了麻煩。 因此,我的問題是如何使用Abaqus / Python(Abaqus 6.14,Python 2.7)腳本在不同的工作表中讀取這些坐標?

我是Python編程的新手,我可以閱讀和理解語法,但是寫得不太好(我仍在努力如何在Abaqus中導入Python模塊)。 幾乎不可能手動鍵入每個坐標(例如在Abaqus的modelAExample.py教程中),因為我的每個CT掃描圖像都可以具有100 ++的邊界區域和10k ++的點。

我正在使用:
Windows 7 x64
Abaqus 6.14(內置Python 2.7)
Excel 2013
具有圖像處理工具箱的Matlab 2016a

您正在嘗試將excel文件讀取為逗號分隔的文件。 根據定義,CSV文件不能包含多個標簽。 您的讀取命令會將文件解釋為csv,並且不允許您迭代文件中的選項卡(盡管這樣會產生一個問題,即您在保存xlsx和讀取csv時首先如何正確打開文件)。

有許多Python庫可解析和處理XLS / XLSX文件。

看看pyxl並用它來讀入文件。您可能會使用類似

from openpyxl import Workbook
(some commands to open the workbook)

listofnames=wb.sheetnames
for k in listofnames:
    ws=wb.worksheets(k)

然后輸入您剩余的命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM