| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| |
|
| |
|
| | import FreeCAD |
| | import FreeCADGui |
| | import shutil |
| | import os |
| | import re |
| | import ImportGui |
| | import PySide |
| | from PySide import QtCore |
| | from PySide import QtGui |
| | import tempfile |
| |
|
| | ___stpZversion___ = "1.4.0" |
| | |
| | |
| | |
| |
|
| |
|
| | import gzip as gz |
| | import builtins |
| | import importlib |
| |
|
| |
|
| | import zipfile as zf |
| |
|
| | |
| |
|
| |
|
| | def mkz_string(input): |
| | if isinstance(input, str): |
| | return input |
| | else: |
| | input = input.encode("utf-8") |
| | return input |
| |
|
| |
|
| | |
| | def mkz_unicode(input): |
| | if isinstance(input, str): |
| | return input |
| | else: |
| | input = input.decode("utf-8") |
| | return input |
| |
|
| |
|
| | |
| | def sayz(msg): |
| | FreeCAD.Console.PrintMessage(msg) |
| | FreeCAD.Console.PrintMessage("\n") |
| |
|
| |
|
| | |
| | def sayzw(msg): |
| | FreeCAD.Console.PrintWarning(msg) |
| | FreeCAD.Console.PrintWarning("\n") |
| |
|
| |
|
| | |
| | def sayzerr(msg): |
| | FreeCAD.Console.PrintError(msg) |
| | FreeCAD.Console.PrintWarning("\n") |
| |
|
| |
|
| | |
| |
|
| |
|
| | def import_stpz(fn, fc, doc): |
| |
|
| | |
| | ext = os.path.splitext(os.path.basename(fn))[1] |
| | fname = os.path.splitext(os.path.basename(fn))[0] |
| | basepath = os.path.split(fn)[0] |
| | filepath = os.path.join(basepath, fname + ".stp") |
| |
|
| | tempdir = tempfile.gettempdir() |
| | tempfilepath = os.path.join(tempdir, fname + ".stp") |
| |
|
| | with builtins.open(tempfilepath, "wb") as f: |
| | f.write(fc) |
| | |
| | if doc is None: |
| | ImportGui.open(tempfilepath) |
| | else: |
| | ImportGui.open(tempfilepath, doc.Name) |
| | FreeCADGui.SendMsgToActiveView("ViewFit") |
| | try: |
| | os.remove(tempfilepath) |
| | except OSError: |
| | sayzerr("error on removing " + tempfilepath + " file") |
| |
|
| |
|
| | |
| |
|
| |
|
| | def open(filename, doc=None): |
| |
|
| | if zf.is_zipfile(filename): |
| | with zf.ZipFile(filename, "r") as fz: |
| | file_names = fz.namelist() |
| | for fn in file_names: |
| | sayz(fn) |
| | with fz.open(fn) as zfile: |
| | file_content = zfile.read() |
| | import_stpz(filename, file_content, doc) |
| | else: |
| | with gz.open(filename, "rb") as f: |
| | fnm = os.path.splitext(os.path.basename(filename))[0] |
| | sayz(fnm) |
| | file_content = f.read() |
| | import_stpz(filename, file_content, doc) |
| |
|
| |
|
| | |
| |
|
| |
|
| | def insert(filename, doc): |
| |
|
| | doc = FreeCAD.ActiveDocument |
| | open(filename, doc) |
| |
|
| |
|
| | |
| |
|
| |
|
| | def export(objs, filename): |
| | """exporting to file folder""" |
| |
|
| | |
| | sayz("stpZ version " + ___stpZversion___) |
| | ext = os.path.splitext(os.path.basename(filename))[1] |
| | fname = os.path.splitext(os.path.basename(filename))[0] |
| | basepath = os.path.split(filename)[0] |
| | tempdir = tempfile.gettempdir() |
| |
|
| | filepath = os.path.join(basepath, fname) + ".stp" |
| | filepath_base = os.path.join(basepath, fname) |
| |
|
| | namefpath = os.path.join(basepath, fname) |
| |
|
| | outfpath = os.path.join(basepath, fname) + ".stpZ" |
| | outfpathT = os.path.join(tempdir, fname) + ".stpZ" |
| | outfpath_stp = os.path.join(basepath, fname) + ".stp" |
| | outfpathT_stp = os.path.join(tempdir, fname) + ".stp" |
| |
|
| | outfpath_base = basepath |
| | |
| | outfpath_str = os.path.join(basepath, fname) + ".stp" |
| | outfpathT_str = os.path.join(tempdir, fname) + ".stp" |
| |
|
| | if os.path.exists(outfpathT_stp): |
| | os.remove(outfpathT_stp) |
| | sayzw("Old temp file with the same name removed '" + outfpathT_stp + "'") |
| | ImportGui.export(objs, outfpathT_stp) |
| | with builtins.open(outfpathT_stp, "rb") as f_in: |
| | file_content = f_in.read() |
| | new_f_content = file_content |
| | f_in.close() |
| | with gz.open(outfpathT_str, "wb") as f_out: |
| | f_out.write(new_f_content) |
| | f_out.close() |
| | if os.path.exists(outfpath): |
| | shutil.move(outfpathT_str, outfpath) |
| | |
| | else: |
| | shutil.move(outfpathT_str, outfpath) |
| | |
| |
|
| |
|
| | |
| |
|