public bool Load(string filename) { m_filename = filename; m_lstMonitorconfigs.Clear(); // clear any previously loaded monitors m_name = Path.GetFileNameWithoutExtension(filename); bool retval = false; XmlHelper xh = new XmlHelper(); bool fileExist = xh.Start(m_filename, "MachineConfig"); XmlNode mc = xh.m_toplevel; m_PlatXSize = xh.GetDouble(mc, "PlatformXSize", 102.0); m_PlatYSize = xh.GetDouble(mc, "PlatformYSize", 77.0); m_PlatZSize = xh.GetDouble(mc, "PlatformZSize", 100.0); m_XMaxFeedrate = xh.GetDouble(mc, "MaxXFeedRate", 100.0); m_YMaxFeedrate = xh.GetDouble(mc, "MaxYFeedRate", 100.0); m_ZMaxFeedrate = xh.GetDouble(mc, "MaxZFeedRate", 100.0); XRenderSize = xh.GetInt(mc, "XRenderSize", 1024); YRenderSize = xh.GetInt(mc, "YRenderSize", 768); MachineControls = xh.GetString(mc, "DisplayedControls", "XYZPG"); m_machinetype = (eMachineType)xh.GetEnum(mc, "MachineType", typeof(eMachineType), eMachineType.UV_DLP); m_multimontype = (eMultiMonType)xh.GetEnum(mc, "MultiMonType", typeof(eMultiMonType), eMultiMonType.eHorizontal); if (m_driverconfig.Load(xh, mc)) { retval = true; } //m_monitorconfig.Load(xh, mc); List<XmlNode> monitornodes = xh.FindAllChildElement(mc, "MonitorDriverConfig"); m_lstMonitorconfigs = new List<MonitorConfig>(); foreach (XmlNode node in monitornodes) { MonitorConfig monc = new MonitorConfig(); monc.Load(xh, node); m_lstMonitorconfigs.Add(monc); } if (m_lstMonitorconfigs.Count > 0) { // we need at least 1 monitor //m_monitorconfig = m_lstMonitorconfigs[0]; } else { DebugLogger.Instance().LogError("No monitor configurations found!"); } CalcPixPerMM(); if (!fileExist) { xh.Save(FILE_VERSION); } CorrectMonitorConfig(); return retval; }
private void LoadInternal(ref XmlHelper xh) { XmlNode sbc = xh.m_toplevel; dpmmX = xh.GetDouble(sbc, "DotsPermmX", 102.4); dpmmY = xh.GetDouble(sbc, "DotsPermmY", 76.8); xres = xh.GetInt(sbc, "XResolution", 1024); yres = xh.GetInt(sbc, "YResolution", 768); //ZThick = xh.GetDouble(sbc, "SliceHeight", 0.05); //layertime_ms = xh.GetInt(sbc, "LayerTime", 1000); // 1 second default //firstlayertime_ms = xh.GetInt(sbc, "FirstLayerTime", 5000); blanktime_ms = xh.GetInt(sbc, "BlankTime", 2000); // 2 seconds blank plat_temp = xh.GetInt(sbc, "PlatformTemp", 75); //exportgcode = xh.GetBool(sbc, "ExportGCode")); exportsvg = xh.GetInt(sbc, "ExportSVG", 0); // the problem is this was previously a boolean variable if ((exportsvg < 0) || (exportsvg > 4)) exportsvg = 0; export = xh.GetBool(sbc, "Export", false); ; exportpng = xh.GetBool(sbc, "ExportPNG", false); ; XOffset = xh.GetInt(sbc, "XOffset", 0); YOffset = xh.GetInt(sbc, "YOffset", 0); //numfirstlayers = xh.GetInt(sbc, "NumberofBottomLayers", 3); direction = (eBuildDirection)xh.GetEnum(sbc, "Direction", typeof(eBuildDirection), eBuildDirection.Bottom_Up); liftdistance = xh.GetDouble(sbc, "LiftDistance", 5.0); slidetiltval = xh.GetDouble(sbc, "SlideTiltValue", 0.0); antialiasing = xh.GetBool(sbc, "AntiAliasing", false); usemainliftgcode = xh.GetBool(sbc, "UseMainLiftGCode", false); aaval = xh.GetDouble(sbc, "AntiAliasingValue", 1.5); liftfeedrate = xh.GetDouble(sbc, "LiftFeedRate", 50.0); // 50mm/s bottomliftfeedrate = xh.GetDouble(sbc, "BottomLiftFeedRate", 25.0); // 50mm/s liftretractrate = xh.GetDouble(sbc, "LiftRetractRate", 100.0); // 100mm/s m_exportopt = xh.GetString(sbc, "ExportOption", "SUBDIR"); // default to saving in subdirectory m_flipX = xh.GetBool(sbc, "FlipX", false); m_flipY = xh.GetBool(sbc, "FlipY", false); m_notes = xh.GetString(sbc, "Notes", ""); m_createoutlines = xh.GetBool(sbc, "RenderOutlines", false); m_outlinewidth_inset = xh.GetDouble(sbc, "OutlineWidth_Inset", 2.0); m_outlinewidth_outset = xh.GetDouble(sbc, "OutlineWidth_Outset", 0.0); //m_resinprice = xh.GetDouble(sbc, "ResinPriceL", 0.0); m_headercode = xh.GetString(sbc, "GCodeHeader", DefGCodeHeader()); m_footercode = xh.GetString(sbc, "GCodeFooter", DefGCodeFooter()); m_preslicecode = xh.GetString(sbc, "GCodePreslice", DefGCodePreslice()); m_liftcode = xh.GetString(sbc, "GCodeLift", DefGCodeLift()); selectedInk = xh.GetString(sbc, "SelectedInk", "Default"); inks = new Dictionary<string, InkConfig>(); List<XmlNode> inkNodes = xh.FindAllChildElement(sbc, "InkConfig"); foreach (XmlNode xnode in inkNodes) { string name = xh.GetString(xnode, "Name", "Default"); InkConfig ic = new InkConfig(name); ic.Load(xh, xnode); inks[name] = ic; } if (!inks.ContainsKey(selectedInk)) { InkConfig ic = new InkConfig(selectedInk); ic.Load(xh, sbc); // try loading legacy settings from parent inks[selectedInk] = ic; } SetCurrentInk(selectedInk); minExposure = xh.GetInt(sbc, "MinTestExposure", 500); exposureStep = xh.GetInt(sbc, "TestExposureStep", 200); exportpreview = (PreviewGenerator.ePreview)xh.GetEnum(sbc, "ExportPreview", typeof(PreviewGenerator.ePreview), PreviewGenerator.ePreview.None); xh.LoadUserParamList(userParams); }
private void LoadSequences(XmlHelper xh) { XmlNode mc = xh.m_toplevel; List<XmlNode> sequencesnodes = xh.FindAllChildElement(mc, "Sequences"); // should only be one of these List<XmlNode> sequencenodes = xh.FindAllChildElement(mc, "Sequence"); //can be multiple sequence definitions foreach (XmlNode node in sequencenodes) { // MonitorConfig monc = new MonitorConfig(); // monc.Load(xh, node); // m_lstMonitorconfigs.Add(monc); } }
public bool Load(string scenename) { try { ZipFile zip = ZipFile.Read(scenename); string xmlname = "manifest.xml"; ZipEntry manifestentry = zip[xmlname]; //create new manifest xml doc XmlHelper manifest = new XmlHelper(); //get memory stream MemoryStream manistream = new MemoryStream(); //extract the stream manifestentry.Extract(manistream); //read from stream manistream.Seek(0, SeekOrigin.Begin); // rewind the stream for reading manifest.LoadFromStream(manistream, "manifest"); //examine manifest //find the node with models XmlNode topnode = manifest.m_toplevel; XmlNode models = manifest.FindSection(topnode, "Models"); List<XmlNode> modelnodes = manifest.FindAllChildElement(models, "model"); foreach (XmlNode nd in modelnodes) { string name = manifest.GetString(nd, "name", "noname"); string modstlname = name + ".stl"; int tag = manifest.GetInt(nd, "tag", 0); ZipEntry modelentry = zip[modstlname]; // the model name will have the _XXXX on the end with the stl extension MemoryStream modstr = new MemoryStream(); modelentry.Extract(modstr); //rewind to beginning modstr.Seek(0, SeekOrigin.Begin); //fix the name name = name.Substring(0, name.Length - 5);// get rid of the _XXXX at the end if (tag == Object3d.OBJ_SUPPORT) { Support s = new Support(); //load the model s.LoadSTL_Binary(modstr, name); //add to the 3d engine UVDLPApp.Instance().m_engine3d.AddObject(s); //set the tag s.tag = tag; string parent = manifest.GetString(nd, "parent", "noname"); s.SetColor(System.Drawing.Color.Yellow); //find and set the parent Object3d tmp = UVDLPApp.Instance().m_engine3d.Find(parent); if (tmp != null) { tmp.AddSupport(s); } } else { //load as normal object Object3d obj = new Object3d(); //load the model obj.LoadSTL_Binary((MemoryStream)modstr, name); //add to the 3d engine UVDLPApp.Instance().m_engine3d.AddObject(obj); //set the tag obj.tag = tag; } } return true; } catch (Exception ex) { DebugLogger.Instance().LogError(ex); return false; } }
bool Load(XmlHelper xh) { bool retval = false; XmlNode mc = xh.m_toplevel; m_PlatXSize = xh.GetDouble(mc, "PlatformXSize", 102.0); m_PlatYSize = xh.GetDouble(mc, "PlatformYSize", 77.0); m_PlatZSize = xh.GetDouble(mc, "PlatformZSize", 100.0); m_XMaxFeedrate = xh.GetDouble(mc, "MaxXFeedRate", 100.0); m_YMaxFeedrate = xh.GetDouble(mc, "MaxYFeedRate", 100.0); m_ZMaxFeedrate = xh.GetDouble(mc, "MaxZFeedRate", 100.0); XRenderSize = xh.GetInt(mc, "XRenderSize", 1024); YRenderSize = xh.GetInt(mc, "YRenderSize", 768); MachineControls = xh.GetString(mc, "DisplayedControls", "XYZPG"); m_machinetype = (eMachineType)xh.GetEnum(mc, "MachineType", typeof(eMachineType), eMachineType.UV_DLP); m_multimontype = (eMultiMonType)xh.GetEnum(mc, "MultiMonType", typeof(eMultiMonType), eMultiMonType.eHorizontal); if (m_driverconfig.Load(xh, mc)) { retval = true; } //m_monitorconfig.Load(xh, mc); List<XmlNode> monitornodes = xh.FindAllChildElement(mc, "MonitorDriverConfig"); m_lstMonitorconfigs = new List<MonitorConfig>(); foreach (XmlNode node in monitornodes) { MonitorConfig monc = new MonitorConfig(); monc.Load(xh, node); m_lstMonitorconfigs.Add(monc); } if (m_lstMonitorconfigs.Count > 0) { // we need at least 1 monitor //m_monitorconfig = m_lstMonitorconfigs[0]; } else { DebugLogger.Instance().LogError("No monitor configurations found!"); } CalcPixPerMM(); CorrectMonitorConfig(); userParams = new UserParameterList(); xh.LoadUserParamList(userParams); return retval; }