public frmAuto3dSupport(ref SupportConfig sc)
 {
     m_sc = sc;
     InitializeComponent();
     SetData();
     UVDLPApp.Instance().m_supportgenerator.SupportEvent += new SupportGeneratorEvent(SupEvent);
 }
 public ctlSupports()
 {
     InitializeComponent();
     UVDLPApp.Instance().m_supportgenerator.SupportEvent += new SupportGeneratorEvent(SupEvent);
     m_sc = UVDLPApp.Instance().m_supportconfig; // should copy really
     SetData();
     m_changingData = false;
     m_numFBSelected = true;
 }
 public ctlSupports()
 {
     InitializeComponent();
     UVDLPApp.Instance().m_supportgenerator.SupportEvent += new SupportGeneratorEvent(SupEvent);
     UVDLPApp.Instance().AppEvent += new AppEventDelegate(AppEvent);
     m_sc = UVDLPApp.Instance().m_supportconfig; // should copy really
     SetData();
     m_changingData = false;
     m_numFBSelected = true;
     numDownAngle.FloatVal = 45;
     numDownAngle.IntVal = 45;
     ListSupports();
 }
        public SupportConfig Clone()
        {
            SupportConfig sc = new SupportConfig();

            sc.eSupType       = eSupType;
            sc.fbrad          = fbrad;
            sc.fbrad2         = fbrad2;
            sc.ftrad          = ftrad;
            sc.hbrad          = hbrad;
            sc.htrad          = htrad;
            sc.m_onlydownward = m_onlydownward;
            sc.mingap         = mingap;
            sc.vdivs          = vdivs;
            sc.xspace         = xspace;
            sc.yspace         = yspace;
            sc.eSectionShape  = eSectionShape;
            return(sc);
        }
Example #5
0
 public SupportConfig Clone()
 {
     SupportConfig sc = new SupportConfig();
     sc.eSupType = eSupType;
     sc.fbrad = fbrad;
     sc.fbrad2 = fbrad2;
     sc.ftrad = ftrad;
     sc.hbrad = hbrad;
     sc.htrad = htrad;
     sc.m_onlydownward = m_onlydownward;
     sc.downwardAngle = downwardAngle;
     sc.mingap = mingap;
     sc.vdivs = vdivs;
     sc.xspace = xspace;
     sc.yspace = yspace;
     sc.eSectionShape = eSectionShape;
     return sc;
 }
 private UVDLPApp()
 {
     m_supportmode = eSupportEditMode.eNone;
     SceneFileName = "";
     m_callbackhandler = new CallbackHandler();
     m_appconfig = new AppConfig();
     m_printerinfo = new MachineConfig();
     m_buildparms = new SliceBuildConfig();
     m_deviceinterface = new DeviceInterface();
     m_buildmgr = new BuildManager();
     m_slicer = new Slicer();
     m_slicer.m_slicemethod = Slicer.eSliceMethod.eNormalCount;// configure the slicer to user the new normal count - Thanks Shai!!!
     m_slicer.Slice_Event += new Slicer.SliceEvent(SliceEv);
     //m_dispmgr = DisplayManager.Instance(); // initialize the singleton for early event app binding
     //m_flexslice = new FlexSlice();
     m_gcode = new GCodeFile(""); // create a blank gcode to start with
     m_supportconfig = new SupportConfig();
     m_supportgenerator = new SupportGenerator();
     m_supportgenerator.SupportEvent+= new SupportGeneratorEvent(SupEvent);
     CSG.Instance().CSGEvent += new CSG.CSGEventDel(CSGEvent);
     m_proj_cmd_lst = new prjcmdlst();
     m_plugins = new List<PluginEntry>(); // list of user plug-ins
     m_pluginstates =  PluginStates.Instance(); // initialize the plugin state singleton
     m_undoer = new Undoer();
     m_2d_graphics = new C2DGraphics();
     m_gui_config = new GuiConfigManager();
     m_AuxBuildCmds = AuxBuildCmds.Instance(); // make sure the singleton doesn't go away...
     m_sequencemanager = SequenceManager.Instance();
     m_exporter = new frmExport();
     m_exporter.RegisterExporter(new B9JExporter());
 }
 private UVDLPApp()
 {
     m_appconfig = new AppConfig();
     m_printerinfo = new MachineConfig();
     m_buildparms = new SliceBuildConfig();
     m_deviceinterface = new DeviceInterface();
     m_buildmgr = new BuildManager();
     m_slicer = new Slicer();
     m_slicer.Slice_Event += new Slicer.SliceEvent(SliceEv);
     //m_flexslice = new FlexSlice();
     m_gcode = new GCodeFile(""); // create a blank gcode to start with
     m_supportconfig = new SupportConfig();
     m_supportgenerator = new SupportGenerator();
     m_supportgenerator.SupportEvent+= new SupportGeneratorEvent(SupEvent);
     CSG.Instance().CSGEvent += new CSG.CSGEventDel(CSGEvent);
     m_proj_cmd_lst = new prjcmdlst();
     m_plugins = new List<PluginEntry>(); // list of user plug-ins
     m_undoer = new Undoer();
 }
 /// <summary>
 /// Start the support generation
 /// </summary>
 public void Start(SupportConfig sc, Object3d model)
 {
     Thread m_thread = new Thread(new ThreadStart(StartGenerating));
     m_sc = sc;
     m_model = model;
     m_cancel = false;
     m_generating = true;
     m_thread.Start();
 }
        private ZipFile m_zip; // for storing image slices

        #endregion Fields

        #region Constructors

        private UVDLPApp()
        {
            m_appconfig = new AppConfig();
            m_printerinfo = new MachineConfig();
            m_buildparms = new SliceBuildConfig();
            m_deviceinterface = new DeviceInterface();
            m_buildmgr = new BuildManager();
            m_slicer = new Slicer();
            m_slicer.Slice_Event += new Slicer.SliceEvent(SliceEv);
            m_flexslice = new FlexSlice();
            m_gcode = new GCodeFile(""); // create a blank gcode to start with
            m_supportconfig = new SupportConfig();
            m_supportgenerator = new SupportGenerator();
            m_supportgenerator.SupportEvent+= new SupportGeneratorEvent(SupEvent);
        }
        /// <summary>
        /// This function creates a new support structure
        /// you can specify the:
        /// Foot Bottom Radius  - fbrad
        /// Foot Top Radius     - ftrad
        /// Head Bottom Radius  - hbrad
        /// Head Top Radius     - htrad
        /// 
        /// as well as the segment lengths from bottom to top D1,D2,D3
        /// you can also specify the number of divisions in the circle - divs
        /// </summary>
        /// <param name="d1"></param>
        /// <param name="d2"></param>
        /// <param name="d3"></param>
        public void Create(SupportConfig SC, Object3d supporting, float d1, float d2, float d3)
        {
            try
            {
                mSC = SC.Clone();
                m_tipheight = 2;// d3;
                m_baseheight = d1;

                m_supporting = supporting;
                float zlev = 0.0f; // start at the bottom of the cylinder
                s1i = 0; // set 0 to be the starting index for the bottom of the foot
                GenerateCirclePoints(mSC.fbrad, mSC.cdivs, zlev, true); // foot bottom
                zlev += d1;
                //now the top of the foot
                s2i = m_lstpoints.Count;
                GenerateCirclePoints(mSC.ftrad, mSC.cdivs, zlev, false); // foot top

                //zlev += d1;
                s3i = m_lstpoints.Count;
                GenerateCirclePoints(mSC.ftrad, mSC.cdivs, zlev, false); // foot top

                zlev += d2;

                //now the bottom of the shaft
                s4i = m_lstpoints.Count;
                GenerateCirclePoints(mSC.hbrad, mSC.cdivs, zlev, false); // bottom of head
                zlev += d3;
                //now the top of the shaft, bottom of the head
                s5i = m_lstpoints.Count;
                GenerateCirclePoints(mSC.htrad, mSC.cdivs, zlev, true); // top of head
                psi_base = m_lstpolys.Count; // should be 0 index
                MakeTopBottomFace(s1i, mSC.cdivs, false);// bottom
                //MakeTopBottomFace(s5i, mSC.cdivs, true);// top
                makeWalls(s1i, s2i, mSC.cdivs);
                pei_base = m_lstpolys.Count; // should be top index of

                makeWalls(s2i, s3i - mSC.cdivs - 1, mSC.cdivs);
                makeWalls(s3i, s4i - (2*mSC.cdivs) - 1, mSC.cdivs);

                psi_tip = m_lstpolys.Count;
                makeWalls(s4i, s5i - (3 * mSC.cdivs) - 1, mSC.cdivs);
                MakeTopBottomFace(s5i, mSC.cdivs, true);// top
                pei_tip = m_lstpolys.Count;

                Update(); // update should only be called for new objects, otherwise, use the move/scale/rotate functions
                SetColor(Color.Yellow);
                ScaleToHeight(d1 + d2 + d3);
            }
            catch (Exception ex)
            {
                DebugLogger.Instance().LogError(ex.Message);

            }
        }
        private int s5i; // top of the head

        #endregion Fields

        #region Constructors

        public Support()
        {
            tag = Object3d.OBJ_SUPPORT; // tag for support
            m_supporting = null;
            this.Name = "Support_" + supcnt.ToString();
            supcnt++;
            mSC = UVDLPApp.Instance().m_supportconfig.Clone(); // start off by cloing the app's defaults
            SubType = eSubType.eBase;
            m_seltype = eSelType.eWhole;
        }
Example #12
0
 private UVDLPApp()
 {
     m_callbackhandler = new CallbackHandler();
     m_appconfig = new AppConfig();
     m_printerinfo = new MachineConfig();
     m_buildparms = new SliceBuildConfig();
     m_deviceinterface = new DeviceInterface();
     m_buildmgr = new BuildManager();
     m_slicer = new Slicer();
     m_slicer.Slice_Event += new Slicer.SliceEvent(SliceEv);
     //m_dispmgr = DisplayManager.Instance(); // initialize the singleton for early event app binding
     //m_flexslice = new FlexSlice();
     m_gcode = new GCodeFile(""); // create a blank gcode to start with
     m_supportconfig = new SupportConfig();
     m_supportgenerator = new SupportGenerator();
     m_supportgenerator.SupportEvent+= new SupportGeneratorEvent(SupEvent);
     CSG.Instance().CSGEvent += new CSG.CSGEventDel(CSGEvent);
     m_proj_cmd_lst = new prjcmdlst();
     m_plugins = new List<PluginEntry>(); // list of user plug-ins
     m_undoer = new Undoer();
     m_2d_graphics = new C2DGraphics();
     m_gui_config = new GuiConfig();
 }