fix double import bug in freecad file importer

This commit is contained in:
Mike Molinari 2022-07-31 00:59:11 +00:00 committed by Val Erastov
parent 6b8213519e
commit ac6e8dc567

View file

@ -9,6 +9,7 @@ import { LocalFile } from "ui/components/controls/FileControl";
import CadError from "../../../../../web/app/utils/errors"; import CadError from "../../../../../web/app/utils/errors";
import { parseStringPromise } from 'xml2js'; import { parseStringPromise } from 'xml2js';
import * as jszip from "jszip"; import * as jszip from "jszip";
import { FcElectricalSensor } from 'react-icons/fc';
interface ImportModelParams { interface ImportModelParams {
@ -56,38 +57,33 @@ export const ImportModelOpperation: OperationDescriptor<ImportModelParams> = {
for (const itemToLookAt in DecodedXmlFreeCADData) { for (const itemToLookAt in DecodedXmlFreeCADData) {
const flattenedObject = flattenJSON(DecodedXmlFreeCADData[itemToLookAt]); const flattenedObject = flattenJSON(DecodedXmlFreeCADData[itemToLookAt]);
let importBrepFlag = true; let importBrepFlag = false;
let importBrepShapeName = ""; let importBrepShapeName = "";
let visiblePropertyName = ""; let visiblePropertyName = "";
for (const propertyToLookAt in flattenedObject) { for (const propertyToLookAt in flattenedObject) {
console.log(propertyToLookAt + " = " + flattenedObject[propertyToLookAt]); //console.log(propertyToLookAt + " = " + flattenedObject[propertyToLookAt]);
importBrepFlag = false;
if (propertyToLookAt.includes("Part.0.$.file")) importBrepShapeName = flattenedObject[propertyToLookAt]; if (propertyToLookAt.includes("Part.0.$.file")) importBrepShapeName = flattenedObject[propertyToLookAt];
if (propertyToLookAt.includes("$.name") && flattenedObject[propertyToLookAt] == "Visibility") { if (importBrepShapeName !== "PartShape.brp"){
let propToCheck = propertyToLookAt.replace(".$.name", ".Bool.0.$.value"); if (propertyToLookAt.includes("$.name") && flattenedObject[propertyToLookAt] == "Visibility") {
if (flattenedObject[propToCheck] == "false") importBrepFlag = false; let propToCheck = propertyToLookAt.replace(".$.name", ".Bool.0.$.value");
let shouldItImport = flattenedObject[propToCheck];
console.log(shouldItImport, importBrepShapeName);
if (shouldItImport == "true") {
try {
await FS.writeFile(importBrepShapeName, `DBRep_DrawableShape\n` + await zipContents[importBrepShapeName].async("string"));
await oci.readbrep(importBrepShapeName, importBrepShapeName);
returnObject.created.push(occ.io.getShell(importBrepShapeName));
console.log(importBrepShapeName);
} catch (e) {
console.log(e)
}
}
}
} }
}
if (importBrepFlag == true) {
try {
await FS.writeFile(importBrepShapeName, `DBRep_DrawableShape\n` + await zipContents[importBrepShapeName].async("string"));
await oci.readbrep(importBrepShapeName, importBrepShapeName);
returnObject.created.push(occ.io.getShell(importBrepShapeName));
} catch (e) {
console.log(e)
}
} }
} }
// for (const property in zipContents) {
// if (property.endsWith("brp")) {
// FS.writeFile(property, `DBRep_DrawableShape\n` + await zipContents[property].async("string"));
// oci.readbrep(property, property);
// returnObject.created.push(occ.io.getShell(property));
// }
// }
//console.log(zipContents);
} else if (FileName.endsWith("STEP") || FileName.endsWith("STP")) { } else if (FileName.endsWith("STEP") || FileName.endsWith("STP")) {
//step Import //step Import