tja ... hab was gefunden was klappt:
Gui.ActiveDocument.mergeProject("C:/DSV/items/"+item_data+".FCStd")
So liest der mir die Bauteile aus der Bibilothek via script in eine neue Zeichnung ein und zwar ohne Umweg.
Also hier mal der code so wie er bisher aussieht, lesen einer Excel Datei, daraus zusammenstellen einer Zeichnung aus diversen Elementen, falls den schnipsel jemand gebrauchen kann.
Code: Select all
import numpy as np
import xlrd
import FreeCAD
DATA_FILE = "C:\\DSV\\vestas retour\\items\\test.xls"
# Read Excel data
def read_excel_file(filename):
book = xlrd.open_workbook(filename, encoding_override = "utf-8")
sheet = book.sheet_by_index(0)
numbers = np.asarray(sheet.nrows)
No_data = np.asarray([sheet.cell(i, 2).value for i in range(1, sheet.nrows)])
POL_data = np.asarray([sheet.cell(i, 3).value for i in range(1, sheet.nrows)])
item_data = np.asarray([sheet.cell(i, 4).value for i in range(1, sheet.nrows)])
destination_data = np.asarray([sheet.cell(i, 7).value for i in range(1, sheet.nrows)])
Qyt1_data = np.asarray([sheet.cell(i, 8).value for i in range(1, sheet.nrows)])
Qyt2_data = np.asarray([sheet.cell(i, 9).value for i in range(1, sheet.nrows)])
Qyt3_data = np.asarray([sheet.cell(i, 10).value for i in range(1, sheet.nrows)])
return No_data, POL_data, item_data, destination_data, Qyt1_data, Qyt2_data, Qyt3_data, numbers
No_data, POL_data, item_data, destination_data, Qyt1_data, Qyt2_data, Qyt3_data, numbers = read_excel_file(DATA_FILE)
# only for control
print No_data
print POL_data
print item_data
print destination_data
print Qyt1_data
print Qyt2_data
print Qyt3_data
print numbers
print "creating drawings"
# create drw
karl = "C:/DSV/items/"+No_data[0]+POL_data[0]+".FCStd"
FreeCAD.newDocument(karl)
for i in range(0, numbers):
Gui.ActiveDocument.mergeProject("C:/DSV/items/"+item_data[i]+".FCStd")