コード例 #1
0
        //dựng lưới kích thước lỗ khoan - old
        private void DungLuoiKichThuoc_old()
        {
            int hBlockModel = Lcad.PropGetHandle(hDrw, Lcad.LC_PROP_DRW_BLOCK_MODEL);

            Lcad.DrwAddTextStyle(hDrw, "Arial", "Arial");
            Lcad.PropPutStr(hDrw, Lcad.LC_PROP_DRW_TEXTSTYLE, "Arial");
            List <Circle> danhSachLoKhoan = mgCircles.GetListCircles();

            for (int i = 0; i < danhSachLoKhoan.Count - 1; i++)
            {
                for (int j = i + 1; j < danhSachLoKhoan.Count; j++)
                {
                    int newText = 0, newLine = 0;
                    if ((danhSachLoKhoan[i].GetX() == danhSachLoKhoan[j].GetX()) && (Math.Round(Math.Abs(danhSachLoKhoan[i].GetY() - danhSachLoKhoan[j].GetY())) == Math.Round(mgCircles.GetDeltaY())))
                    {
                        newText = Lcad.BlockAddTextWin2(hBlockModel, mgCircles.GetDeltaY().ToString(), ((danhSachLoKhoan[i].GetX() + danhSachLoKhoan[j].GetX()) / 2), ((danhSachLoKhoan[i].GetY() + danhSachLoKhoan[j].GetY()) / 2), Lcad.LC_TA_CENTER, 0.75, 1, 0, 0);
                        newLine = Lcad.BlockAddLine(hBlockModel, danhSachLoKhoan[i].GetX(), danhSachLoKhoan[i].GetY(), danhSachLoKhoan[j].GetX(), danhSachLoKhoan[j].GetY());
                    }
                    if ((danhSachLoKhoan[i].GetY() == danhSachLoKhoan[j].GetY()) && (Math.Round(Math.Abs(danhSachLoKhoan[i].GetX() - danhSachLoKhoan[j].GetX())) == Math.Round(mgCircles.GetDeltaX())))
                    {
                        newText = Lcad.BlockAddTextWin2(hBlockModel, mgCircles.GetDeltaX().ToString(), ((danhSachLoKhoan[i].GetX() + danhSachLoKhoan[j].GetX()) / 2), ((danhSachLoKhoan[i].GetY() + danhSachLoKhoan[j].GetY()) / 2), Lcad.LC_TA_CENTER, 0.75, 1, 0, 0);
                        newLine = Lcad.BlockAddLine(hBlockModel, danhSachLoKhoan[i].GetX(), danhSachLoKhoan[i].GetY(), danhSachLoKhoan[j].GetX(), danhSachLoKhoan[j].GetY());
                    }
                    Lcad.PropPutStr(newText, Lcad.LC_PROP_ENT_LAYER, "LuoiKichThuoc");
                    Lcad.PropPutStr(newLine, Lcad.LC_PROP_ENT_LAYER, "LuoiKichThuoc");
                }
            }
        }
コード例 #2
0
        private void FormMain_Load(object sender, EventArgs e)
        {
            //tạo cửa sổ - Windows
            hWnd = Lcad.CreateWindow(panelControl_hWnd.Handle, Lcad.LC_WS_VIEWTABS, 0, 0, panelControl_hWnd.Width, panelControl_hWnd.Height);
            //tạo cửa sổ - Command
            hCmd = Lcad.CreateCmdwin(panelControl_hCmd.Handle, 0, 0, panelControl_hCmd.Width, panelControl_hCmd.Height);
            //tạo cửa sổ - Properties
            hProp = Lcad.CreatePropwin(splitContainerControl.Panel1.Handle, 0, 0, splitContainerControl.Panel1.Width, splitContainerControl.Panel1.Height);
            //liên kết các cửa sổ với nhau
            Lcad.WndSetCmdwin(hWnd, hCmd);
            Lcad.WndSetPropwin(hWnd, hProp);
            //tạo bản vẽ, gán cho cửa sổ LiteCad + đặt tên
            hDrw = Lcad.CreateDrawing();
            Lcad.DrwNew(hDrw, "", hWnd);
            Lcad.WndSetFocus(hWnd);
            //lấy giá trị hBlockModel của bản vẽ
            int hBlockModel = Lcad.PropGetHandle(hDrw, Lcad.LC_PROP_DRW_BLOCK_MODEL);

            //điều chỉnh kích thước
            Lcad.CmdwinResize(hCmd, 0, 0, panelControl_hCmd.Width, panelControl_hCmd.Height);
            Lcad.PropwinResize(hProp, 0, 0, splitContainerControl.Panel1.Width, splitContainerControl.Panel1.Height);
            Lcad.WndResize(hWnd, 0, 0, panelControl_hWnd.Width, panelControl_hWnd.Height);
            //thêm layer
            layerLoMin         = Lcad.DrwAddLayer(hDrw, "LoMin", "cyan", 0, Lcad.LC_LWEIGHT_DEFAULT);
            layerLuoiKichThuoc = Lcad.DrwAddLayer(hDrw, "LuoiKichThuoc", "foreground", 0, Lcad.LC_LWEIGHT_DEFAULT);
            //vẽ lại hình
            Lcad.WndExeCommand(hWnd, Lcad.LC_CMD_REGEN, 0);
            Lcad.DrwRegenViews(hDrw, 0);
            Lcad.Initialize();
        }
コード例 #3
0
 //mở bản vẽ
 private void barButtonItem_OpenFile_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
 {
     try
     {
         //filename = Lcad.DgGetFileName(panelControl_hWnd.Handle, Lcad.LC_DG_SELFILE);
         OpenFileDialog filename = new OpenFileDialog();
         filename.Title  = "Open file LiteCAD";
         filename.Filter = "Drawing liteCAD|*.lcd;*.dwg;*.dxf;*.shp|all file|*.*";
         if (filename.ShowDialog() == System.Windows.Forms.DialogResult.OK)
         {
             if (filename.FileName != "")
             {
                 this.hoChieuChinh = new HoChieu();
                 this.banVeChinh   = new BanVe();
                 //this.banVeChinh.HienKhoangCach = false;
                 this.Text = "Bản vẽ: [" + filename.FileName + "]";
                 Lcad.DrwLoad(hDrw, filename.FileName, this.Handle, hWnd);
                 layerLoMin         = Lcad.DrwAddLayer(hDrw, "LoMin", "cyan", 0, Lcad.LC_LWEIGHT_DEFAULT);
                 layerLuoiKichThuoc = Lcad.DrwAddLayer(hDrw, "LuoiKichThuoc", "foreground", 0, Lcad.LC_LWEIGHT_DEFAULT);
                 GetCirlcesFromAutocadFile();
                 Lcad.DrwRegenViews(hDrw, 0);
                 BS_LiteCAD.ShowNotifyAutoHide(elementHost1, "Bản vẽ sẵn sàng");
             }
         }
     }
     catch
     {
         BS_LiteCAD.ShowNotifyAutoHide(elementHost1, "Không hiển thị được bản vẽ");
     }
 }
コード例 #4
0
        //dựng lưới kích thước lỗ khoan
        private void DungLuoiKichThuoc()
        {
            //xóa lớp lưới cũ
            Lcad.LayerClear(layerLuoiKichThuoc, Lcad.PropGetHandle(hDrw, Lcad.LC_PROP_DRW_BLOCK_MODEL));
            List <Circle> danhSachLoKhoan = mgCircles.GetListCircles();

            for (int i = 0; i < danhSachLoKhoan.Count - 1; i++)
            {
                for (int j = i + 1; j < danhSachLoKhoan.Count; j++)
                {
                    double length = Math.Sqrt(Math.Pow((danhSachLoKhoan[i].GetX() - danhSachLoKhoan[j].GetX()), 2) + Math.Pow((danhSachLoKhoan[i].GetY() - danhSachLoKhoan[j].GetY()), 2));
                    if (Math.Round(length) == Math.Round(this.banVeChinh.DeltaX))
                    {
                        VeKhoangCach(danhSachLoKhoan[i], danhSachLoKhoan[j]);
                    }
                    else
                    {
                        if (Math.Round(length) == Math.Round(this.banVeChinh.DeltaY))
                        {
                            VeKhoangCach(danhSachLoKhoan[i], danhSachLoKhoan[j]);
                        }
                    }
                }
            }
            Lcad.DrwRegenViews(hDrw, 0);
            Lcad.WndExeCommand(hWnd, Lcad.LC_CMD_ZOOM_EXT, 0);
        }
コード例 #5
0
 private void AddRowCircle()
 {
     if (mgCircles.GetListCircles().Count == 0)
     {
         BS_LiteCAD.ShowNotifyAutoHide(elementHost1, "Không có lỗ khoan");
     }
     else
     {
         List <Circle> listCircle    = mgCircles.GetListCircleOfFirstRow();
         List <Circle> listNewCircle = new List <Circle>();
         int           hBlockModel   = Lcad.PropGetHandle(hDrw, Lcad.LC_PROP_DRW_BLOCK_MODEL);
         Lcad.BlockUnselect(hBlockModel);
         //thêm hàng lỗ khoan mới
         foreach (var circle in listCircle)
         {
             int newHEnt = Lcad.BlockAddClone(hBlockModel, circle.GetHandle());
             Lcad.BlockSelectEnt(hBlockModel, newHEnt, true);
             Lcad.BlockSelMove(hBlockModel, 0, mgCircles.GetDeltaY(), false, true);
             Lcad.BlockUnselect(hBlockModel);
             listNewCircle.Add(new Circle(newHEnt));
         }
         mgCircles.AddListCircle(listNewCircle);
         //thêm lưới tọa độ
         if (this.banVeChinh.HienKhoangCach)
         {
             Lcad.LayerClear(layerLuoiKichThuoc, hBlockModel);
             DungLuoiKichThuoc();
         }
         //load lại
         Lcad.DrwRegenViews(hDrw, 0);
         Lcad.WndExeCommand(hWnd, Lcad.LC_CMD_ZOOM_EXT, 0);
     }
 }
コード例 #6
0
 private void DeleteRowCircle()
 {
     if (mgCircles.GetListCircles().Count == 0)
     {
         BS_LiteCAD.ShowNotifyAutoHide(elementHost1, "Không có lỗ khoan");
     }
     else
     {
         List <Circle> listCircle  = mgCircles.GetListCircleOfFirstRow();
         int           hBlockModel = Lcad.PropGetHandle(hDrw, Lcad.LC_PROP_DRW_BLOCK_MODEL);
         Lcad.BlockUnselect(hBlockModel);
         //xóa hàng lỗ khoan mới
         mgCircles.RemoveListCircles(listCircle);
         foreach (var circle in listCircle)
         {
             Lcad.BlockSelectEnt(hBlockModel, circle.GetHandle(), true);
             Lcad.BlockSelErase(hBlockModel);
             Lcad.BlockUnselect(hBlockModel);
         }
         //thêm lưới tọa độ
         if (this.banVeChinh.HienKhoangCach)   //sau them dk vao day
         {
             Lcad.LayerClear(layerLuoiKichThuoc, hBlockModel);
             DungLuoiKichThuoc();
         }
         //load lại
         Lcad.DrwRegenViews(hDrw, 0);
         Lcad.WndExeCommand(hWnd, Lcad.LC_CMD_ZOOM_EXT, 0);
     }
 }
コード例 #7
0
        //hiện thông báo
        //private void ShowNotifyAutoHide(String text)
        //{
        //    UserControl_Notify note = new UserControl_Notify(text);
        //    elementHost1.Child = note;
        //    note.ShowNotifyAutoHide();
        //}

        //lấy danh sách lỗ khoan trên bản vẽ
        private void GetCirlcesFromAutocadFile()
        {
            int           hBlockModel = Lcad.PropGetHandle(hDrw, Lcad.LC_PROP_DRW_BLOCK_MODEL);
            int           hEnt        = Lcad.BlockGetFirstEnt(hBlockModel);
            List <Circle> listCircles = new List <Circle>();

            while (hEnt != 0)
            {
                int entType = Lcad.PropGetInt(hEnt, Lcad.LC_PROP_ENT_TYPE);
                if (!Lcad.PropGetBool(hEnt, Lcad.LC_PROP_ENT_DELETED))   //kiểm tra xem ent bị xóa hay không
                {
                    if (entType == Lcad.LC_ENT_CIRCLE)
                    {
                        listCircles.Add(new Circle(hEnt));
                    }
                    //cách khác (dùng key, vì cái gì đấy mà ko lấy được LC_PROP_ENT_TYPE) - do thư viện....
                    else
                    {
                        int _key = Lcad.PropGetInt(hEnt, Lcad.LC_PROP_ENT_KEY);
                        if (_key == keyCircle)
                        {
                            listCircles.Add(new Circle(hEnt));
                        }
                    }
                }
                hEnt = Lcad.BlockGetNextEnt(hBlockModel, hEnt);
            }
            mgCircles = new ManageCircle();
            mgCircles.AddListCircle(listCircles);
        }
コード例 #8
0
        //private void barButtonItem13_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        //{
        //    if(mgCircles.GetListCircles().Count == 0)
        //    {
        //        UserControl_Notify note = new UserControl_Notify("Không có lỗ khoan");
        //        elementHost1.Child = note;
        //        note.ShowNotifyAutoHide();
        //    }
        //    else
        //    {
        //        DungLuoiKichThuoc();
        //        Lcad.DrwRegenViews(hDrw, 0);
        //        Lcad.WndExeCommand(hWnd, Lcad.LC_CMD_ZOOM_EXT, 0);
        //    }
        //    this.banVeChinh.HienKhoangCach = true;
        //}

        private void barButtonItem_AnKhoangCach_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.banVeChinh.HienKhoangCach = false;
            Lcad.PropPutBool(layerLuoiKichThuoc, Lcad.LC_PROP_LAYER_VISIBLE, false);
            Lcad.DrwRegenViews(hDrw, 0);
            Lcad.WndExeCommand(hWnd, Lcad.LC_CMD_ZOOM_EXT, 0);
        }
コード例 #9
0
 //hàm gán ID của 1 Circle
 public void SetKeyOfCircle(int keyvalue)
 {
     //duyệt từng circle trong listCircle
     foreach (var circle in listCircles)
     {
         Lcad.PropPutInt(circle.GetHandle(), Lcad.LC_PROP_ENT_KEY, keyvalue);
     }
 }
コード例 #10
0
        private List <Circle> circleChildrens; //các đường tròn con trong 1 đường tròn cha

        public Circle(int _handle)
        {
            this.handle          = _handle;
            this.x               = Lcad.PropGetFloat(handle, Lcad.LC_PROP_CIRCLE_X);
            this.y               = Lcad.PropGetFloat(handle, Lcad.LC_PROP_CIRCLE_Y);
            this.radius          = Lcad.PropGetFloat(handle, Lcad.LC_PROP_CIRCLE_RAD);
            this.circleChildrens = new List <Circle>();
            this.circleParent    = null;
        }
コード例 #11
0
 //tính toán khoanh vùng
 private void KhoanhVungLoKhoan()
 {
     if (mgCircles.GetListCircles().Count == 0)
     {
         BS_LiteCAD.ShowNotifyAutoHide(elementHost1, "Không có lỗ khoan");
     }
     else
     {
         double xMax, xMin, yMax, yMin;
         if (xFirstPoint > xLastPoint)
         {
             xMax = xFirstPoint;
             xMin = xLastPoint;
         }
         else
         {
             xMax = xLastPoint;
             xMin = xFirstPoint;
         }
         if (yFirstPoint > yLastPoint)
         {
             yMax = yFirstPoint;
             yMin = yLastPoint;
         }
         else
         {
             yMax = yLastPoint;
             yMin = yFirstPoint;
         }
         List <Circle> listCircle       = mgCircles.GetListCircles();
         List <Circle> listRemoveCircle = new List <Circle>();
         int           hBlockModel      = Lcad.PropGetHandle(hDrw, Lcad.LC_PROP_DRW_BLOCK_MODEL);
         foreach (Circle value in listCircle)
         {
             if (value.GetX() > xMax || value.GetX() < xMin || value.GetY() > yMax || value.GetY() < yMin)
             {
                 listRemoveCircle.Add(value);
                 Lcad.BlockSelectEnt(hBlockModel, value.GetHandle(), true);
                 Lcad.BlockSelErase(hBlockModel);
                 Lcad.BlockUnselect(hBlockModel);
             }
         }
         //xóa danh sách nằm ngoài
         mgCircles.RemoveListCircles(listRemoveCircle);
         //vẽ lại lưới tọa độ
         if (this.banVeChinh.HienKhoangCach)   //sau them dk vao day
         {
             Lcad.LayerClear(layerLuoiKichThuoc, hBlockModel);
             DungLuoiKichThuoc();
         }
         //load lại
         Lcad.DrwRegenViews(hDrw, 0);
         Lcad.WndExeCommand(hWnd, Lcad.LC_CMD_ZOOM_EXT, 0);
         SendKeys.Send("{ESC}");
     }
 }
コード例 #12
0
        private void barButtonItem_KhoanhVungLoKhoan_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            _EventMouseDown_GetPoint = new F_MOUSEDOWN(MouseDownProc_GetFirstPoint);
            Lcad.OnEventMouseDown(_EventMouseDown_GetPoint);
            //hiển thị thông báo
            UserControl_Notify note = new UserControl_Notify("Chọn điểm đầu");

            elementHost1.Child = note;
            note.ShowNotify();
        }
コード例 #13
0
 //hàm trả về ID của 1 Circle
 public int GetKeyOfCircle()
 {
     if (listCircles != null)
     {
         return(Lcad.PropGetInt(listCircles[0].GetHandle(), Lcad.LC_PROP_ENT_KEY));
     }
     else
     {
         return(-1);
     }
 }
コード例 #14
0
 private void FormMain_SizeChanged(object sender, EventArgs e)
 {
     Lcad.CmdwinResize(hCmd, 0, 0, panelControl_hCmd.Width, panelControl_hCmd.Height);
     Lcad.PropwinResize(hProp, 0, 0, splitContainerControl.Panel1.Width, splitContainerControl.Panel1.Height);
     Lcad.WndResize(hWnd, 0, 0, panelControl_hWnd.Width, panelControl_hWnd.Height);
     if (this.Width > 1000)
     {
         Point a = new Point(this.Width - 300, 30);
         elementHost1.Location = a;
     }
     panelStatusBar.Width = this.Width - 16;
 }
コード例 #15
0
        private void VeKhoangCach(Circle c1, Circle c2)
        {
            int hBlockModel = Lcad.PropGetHandle(hDrw, Lcad.LC_PROP_DRW_BLOCK_MODEL);

            Lcad.DrwAddTextStyle(hDrw, "Arial", "Arial");
            Lcad.PropPutStr(hDrw, Lcad.LC_PROP_DRW_TEXTSTYLE, "Arial");
            int newText = 0, newLine = 0;

            newText = Lcad.BlockAddTextWin2(hBlockModel, this.banVeChinh.DeltaX.ToString(), ((c1.GetX() + c2.GetX()) / 2), ((c1.GetY() + c2.GetY()) / 2), Lcad.LC_TA_CENTER, 0.75, 1, 0, 0);
            newLine = Lcad.BlockAddLine(hBlockModel, c1.GetX(), c1.GetY(), c2.GetX(), c2.GetY());
            Lcad.PropPutStr(newText, Lcad.LC_PROP_ENT_LAYER, "LuoiKichThuoc");
            Lcad.PropPutStr(newLine, Lcad.LC_PROP_ENT_LAYER, "LuoiKichThuoc");
        }
コード例 #16
0
        //...
        private void loadFile_FormXayDungLoKhoan(int _soHang, int _soCot, int _khoangCachHang, int _khoangCachCot, double _banKinh, bool _hienThiKichThuoc)
        {
            this.soHang                    = _soHang;
            this.soCot                     = _soCot;
            this.khoangCachHang            = _khoangCachHang;
            this.khoangCachCot             = _khoangCachCot;
            this.banKinh                   = _banKinh;
            this.banVeChinh.HienKhoangCach = _hienThiKichThuoc;
            this.banVeChinh.DeltaX         = Math.Abs(_khoangCachCot);
            this.banVeChinh.DeltaY         = Math.Abs(_khoangCachHang);
            Lcad.OnEventMouseDblClk(_EventMouseDbclick_XayDungLuoiLoMin);
            UserControl_Notify note = new UserControl_Notify("Chọn tọa độ");

            elementHost1.Child = note;
            note.ShowNotify();
        }
コード例 #17
0
 public FormMain()
 {
     InitializeComponent();
     Lcad.PropPutStr(0, Lcad.LC_PROP_G_REGCODE, "1234"); // 1234 là mã số khi mua LiteCad đã đăng ký
     //Lcad.PropPutStr(0, Lcad.LC_PROP_G_DIRDATA, @"..\..\LiteCAD\Data");
     //Lcad.PropPutStr(0, Lcad.LC_PROP_G_DIRPLUG, @"..\..\LiteCAD\Data\Plugins");
     //Lcad.PropPutStr(0, Lcad.LC_PROP_G_DIRCFG, @"..\..\LiteCAD");
     Lcad.PropPutBool(0, Lcad.LC_PROP_G_DLGRECENT, true);
     Lcad.PropPutBool(0, Lcad.LC_PROP_G_ADDRECENT, true);
     //gán các sự kiện mouse click với các hàm
     _EventMouseDbclick_LoMin            = new F_MOUSEDBLCLK(MouseDblClkProc_LoMin);
     _EventMouseDbclick_XayDungLuoiLoMin = new F_MOUSEDBLCLK(MouseDblClkProc_XayDungLuoiLoMin);
     _EventMouseDown_Default             = new F_MOUSEDOWN(MouseDownProc_Default);
     Lcad.OnEventMouseDblClk(_EventMouseDbclick_LoMin);
     Lcad.Initialize();
     //UI
     this.BackColor = Properties.Settings.Default.FormBackgroundColor;
 }
コード例 #18
0
        private void MouseDownProc_GetLastPoint(int hWnd, int Button, int Flags, int Xwin, int Ywin, double Xdrw, double Ydrw)
        {
            if (Button == Lcad.LC_LBUTTON)
            {
                xLastPoint = Xdrw;
                yLastPoint = Ydrw;
                //ham tinh toan
                KhoanhVungLoKhoan();
                Lcad.OnEventMouseDown(_EventMouseDown_Default);
            }
            else
            {
                Lcad.OnEventMouseDown(_EventMouseDown_Default);
            }
            //tắt thông báo
            UserControl_Notify note = elementHost1.Child as UserControl_Notify;

            note.HideNotify();
        }
コード例 #19
0
        private void loadFile_FormMoBanVeDatabase(String idHoChieu)
        {
            this.hoChieuChinh = BS_HoChieu.HoChieu(idHoChieu);
            this.banVeChinh   = BS_BanVe.BanVe(this.hoChieuChinh.MaBanVe);
            List <LoKhoan> danhSachLoKhoan = BS_LoKhoan.DanhSachLoKhoan(idHoChieu);
            List <Circle>  danhSachCircle  = new List <Circle>();

            mgCircles = new ManageCircle();
            //dựng bản vẽ mới
            //this.banVeChinh.HienKhoangCach = false;
            this.Text = "Bản vẽ: [" + this.banVeChinh.TenBanVe + "]";
            Lcad.DrwLoad(hDrw, BS_Template.ChonTemplate(this.banVeChinh.Template).DuongDan, this.Handle, hWnd);
            layerLoMin         = Lcad.DrwAddLayer(hDrw, "LoMin", "cyan", 0, Lcad.LC_LWEIGHT_DEFAULT);
            layerLuoiKichThuoc = Lcad.DrwAddLayer(hDrw, "LuoiKichThuoc", "foreground", 0, Lcad.LC_LWEIGHT_DEFAULT);
            int hBlockModel = Lcad.PropGetHandle(hDrw, Lcad.LC_PROP_DRW_BLOCK_MODEL);

            foreach (LoKhoan value in danhSachLoKhoan)
            {
                int hEntCircle = Lcad.BlockAddCircle(hBlockModel, value.ToaDoX, value.ToaDoY, value.BanKinh, false);
                Lcad.PropPutInt(hEntCircle, Lcad.LC_PROP_ENT_ID, int.Parse(value.MaLoKhoan));
                Lcad.PropPutInt(hEntCircle, Lcad.LC_PROP_ENT_KEY, keyCircle);
                Lcad.PropPutStr(hEntCircle, Lcad.LC_PROP_ENT_LAYER, "LoMin");
                danhSachCircle.Add(new Circle(hEntCircle));
            }
            mgCircles.AddListCircle(danhSachCircle);
            if (banVeChinh.HienKhoangCach)
            {
                Lcad.LayerClear(layerLuoiKichThuoc, hBlockModel);
                DungLuoiKichThuoc();
            }
            //vẽ lại hình
            Lcad.DrwRegenViews(hDrw, 0);
            Lcad.WndExeCommand(hWnd, Lcad.LC_CMD_ZOOM_EXT, 0);
            BS_LiteCAD.ShowNotifyAutoHide(elementHost1, this.banVeChinh.TenBanVe + " - đã mở");
            //mở form dựng lưới lỗ khoan
            if (mgCircles.GetListCircles().Count == 0)
            {
                FormXayDungLoKhoan fm = new FormXayDungLoKhoan();
                fm.MyGetData = new FormXayDungLoKhoan.GetData(loadFile_FormXayDungLoKhoan);
                fm.Show();
            }
        }
コード例 #20
0
        private void barButtonItem_Move_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            //select toàn bộ lỗ khoan
            int           hBlockModel = Lcad.PropGetHandle(hDrw, Lcad.LC_PROP_DRW_BLOCK_MODEL);
            int           hEnt        = Lcad.BlockGetFirstEnt(hBlockModel);
            List <Circle> listCircles = new List <Circle>();

            while (hEnt != 0)
            {
                int entType = Lcad.PropGetInt(hEnt, Lcad.LC_PROP_ENT_TYPE);
                if (!Lcad.PropGetBool(hEnt, Lcad.LC_PROP_ENT_DELETED))   //kiểm tra xem ent bị xóa hay không
                {
                    if (entType == Lcad.LC_ENT_CIRCLE)
                    {
                        Lcad.BlockSelectEnt(hBlockModel, hEnt, true);
                    }
                    //cách khác (dùng key, vì cái gì đấy mà ko lấy được LC_PROP_ENT_TYPE) - do thư viện....
                    else
                    {
                        int _key = Lcad.PropGetInt(hEnt, Lcad.LC_PROP_ENT_KEY);
                        if (_key == keyCircle)
                        {
                            Lcad.BlockSelectEnt(hBlockModel, hEnt, true);
                        }
                    }
                }
                hEnt = Lcad.BlockGetNextEnt(hBlockModel, hEnt);
            }
            //chạy hàm move
            bool flag = Lcad.WndExeCommand(hWnd, Lcad.LC_CMD_MOVE, 0);

            if (flag)
            {
                mgCircles = new ManageCircle();
                GetCirlcesFromAutocadFile();
                if (this.banVeChinh.HienKhoangCach)
                {
                    DungLuoiKichThuoc();
                }
            }
        }
コード例 #21
0
 private void loadFile_FormBanVeMoi(String idHoChieu)
 {
     this.hoChieuChinh = BS_HoChieu.HoChieu(idHoChieu);
     this.banVeChinh   = BS_BanVe.BanVe(this.hoChieuChinh.MaBanVe);
     mgCircles         = new ManageCircle();
     //dựng bản vẽ mới
     this.Text = "Hộ chiếu: [" + this.hoChieuChinh.TenHoChieu + "]";
     Lcad.DrwLoad(hDrw, BS_Template.ChonTemplate(this.banVeChinh.Template).DuongDan, this.Handle, hWnd);
     layerLoMin         = Lcad.DrwAddLayer(hDrw, "LoMin", "cyan", 0, Lcad.LC_LWEIGHT_DEFAULT);
     layerLuoiKichThuoc = Lcad.DrwAddLayer(hDrw, "LuoiKichThuoc", "foreground", 0, Lcad.LC_LWEIGHT_DEFAULT);
     //vẽ lại hình
     Lcad.DrwRegenViews(hDrw, 0);
     Lcad.WndExeCommand(hWnd, Lcad.LC_CMD_ZOOM_EXT, 0);
     //mở form dựng lưới lỗ khoan
     if (mgCircles.GetListCircles().Count == 0)
     {
         FormXayDungLoKhoan fm = new FormXayDungLoKhoan();
         fm.MyGetData = new FormXayDungLoKhoan.GetData(loadFile_FormXayDungLoKhoan);
         fm.Show();
     }
 }
コード例 #22
0
 private void MouseDownProc_GetFirstPoint(int hWnd, int Button, int Flags, int Xwin, int Ywin, double Xdrw, double Ydrw)
 {
     if (Button == Lcad.LC_LBUTTON)
     {
         xFirstPoint = Xdrw;
         yFirstPoint = Ydrw;
         _EventMouseDown_GetPoint = new F_MOUSEDOWN(MouseDownProc_GetLastPoint);
         Lcad.OnEventMouseDown(_EventMouseDown_GetPoint);
         //hiển thị thông báo
         UserControl_Notify note = new UserControl_Notify("Chọn điểm cuối");
         elementHost1.Child = note;
         note.ShowNotify();
     }
     else
     {
         //tắt thông báo
         UserControl_Notify note = elementHost1.Child as UserControl_Notify;
         note.HideNotify();
         Lcad.OnEventMouseDown(_EventMouseDown_Default);
     }
 }
コード例 #23
0
        //
        private void barButtonItem_HoChieuNoMin_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Lcad.PropPutInt(hDrw, Lcad.LC_PROP_DRW_COLORBACKM, int.Parse("FFFFFF", System.Globalization.NumberStyles.HexNumber));
            Lcad.PropPutInt(hDrw, Lcad.LC_PROP_DRW_COLORFOREM, int.Parse("000000", System.Globalization.NumberStyles.HexNumber));
            Lcad.PropPutStr(layerLoMin, Lcad.LC_PROP_LAYER_COLOR, "blue");
            Lcad.WndExeCommand(hWnd, Lcad.LC_CMD_REGEN, 0);
            Lcad.DrwRegenViews(hDrw, 0);
            Lcad.Initialize();
            int    hView    = Lcad.PropGetHandle(hDrw, Lcad.LC_PROP_DRW_VIEW);
            String fullPath = Path.GetFullPath(Path.Combine((@"" + Application.StartupPath), @"..\..\"));

            Lcad.ViewRasterize(hView, fullPath + "Template\\ViewTemp.bmp", 0, 0, 0, 0, 10);
            Lcad.PropPutInt(hDrw, Lcad.LC_PROP_DRW_COLORBACKM, int.Parse("000000", System.Globalization.NumberStyles.HexNumber));
            Lcad.PropPutInt(hDrw, Lcad.LC_PROP_DRW_COLORFOREM, int.Parse("FFFFFF", System.Globalization.NumberStyles.HexNumber));
            Lcad.PropPutStr(layerLoMin, Lcad.LC_PROP_LAYER_COLOR, "cyan");
            Lcad.WndExeCommand(hWnd, Lcad.LC_CMD_REGEN, 0);
            Lcad.DrwRegenViews(hDrw, 0);
            Lcad.Initialize();
            FormBaoCaoThongKe fm = new FormBaoCaoThongKe(hoChieuChinh);

            fm.Show();
        }
コード例 #24
0
 //xuất tệp tin
 private void barButtonItem_Export_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
 {
     Lcad.WndExeCommand(hWnd, Lcad.LC_CMD_FILESAVEAS, 0);
 }
コード例 #25
0
        //test
        private void button1_Click(object sender, EventArgs e)
        {
            int hView = Lcad.PropGetHandle(hDrw, Lcad.LC_PROP_DRW_VIEW);

            Lcad.ViewRasterize(hView, @"E:\Sample1.bmp", 0, 0, 0, 0, 10);
        }
コード例 #26
0
 public int GetID()
 {
     return(Lcad.PropGetInt(handle, Lcad.LC_PROP_ENT_ID));
 }
コード例 #27
0
        private void MouseDblClkProc_XayDungLuoiLoMin(int hWnd, int Button, int Flags, int Xwin, int Ywin, double Xdrw, double Ydrw)
        {
            int hBlockModel = Lcad.PropGetHandle(hDrw, Lcad.LC_PROP_DRW_BLOCK_MODEL);

            if (mgCircles == null)
            {
                mgCircles = new ManageCircle();
            }
            else
            {
                Lcad.LayerClear(layerLoMin, hBlockModel);
                Lcad.LayerClear(layerLuoiKichThuoc, hBlockModel);
                mgCircles = new ManageCircle();
            }
            int hEntCircle = Lcad.BlockAddCircle(hBlockModel, Xdrw, Ydrw, banKinh, false);

            Lcad.PropPutInt(hEntCircle, Lcad.LC_PROP_ENT_KEY, keyCircle);
            Lcad.PropPutStr(hEntCircle, Lcad.LC_PROP_ENT_LAYER, "LoMin");
            Lcad.BlockUnselect(hBlockModel);
            //tạo danh sách cột đầu tiên
            List <Circle> listCotDau = new List <Circle>();
            Circle        root       = new Circle(hEntCircle);

            listCotDau.Add(root);
            //tạo cột đầu tiên từ điểm gốc (số điểm trong cột ứng với số hàng trừ đi điểm gốc)
            for (int i = 0; i < soHang - 1; i++)
            {
                int newHEnt = Lcad.BlockAddClone(hBlockModel, listCotDau[i].GetHandle());
                Lcad.PropPutInt(newHEnt, Lcad.LC_PROP_ENT_KEY, keyCircle);
                Lcad.BlockSelectEnt(hBlockModel, newHEnt, true);
                Lcad.BlockSelMove(hBlockModel, 0, khoangCachHang, false, true);
                Lcad.BlockUnselect(hBlockModel);
                listCotDau.Add(new Circle(newHEnt));
            }
            mgCircles.AddListCircle(listCotDau);
            //thêm các cột còn lại (ứng với số cột trừ đi cột đầu)
            for (int i = 0; i < soCot - 1; i++)
            {
                List <Circle> listCotGanNhat = new List <Circle>();
                List <Circle> listCotMoi     = new List <Circle>();
                if (khoangCachCot > 0)
                {
                    listCotGanNhat = mgCircles.GetListCirleOfLastColumn();
                }
                else
                {
                    listCotGanNhat = mgCircles.GetListCirleOfFirstColumn();
                }
                foreach (var circle in listCotGanNhat)
                {
                    int newHEnt = Lcad.BlockAddClone(hBlockModel, circle.GetHandle());
                    Lcad.PropPutInt(newHEnt, Lcad.LC_PROP_ENT_KEY, keyCircle);
                    Lcad.BlockSelectEnt(hBlockModel, newHEnt, true);
                    Lcad.BlockSelMove(hBlockModel, khoangCachCot, 0, false, true);
                    Lcad.BlockUnselect(hBlockModel);
                    listCotMoi.Add(new Circle(newHEnt));
                }
                mgCircles.AddListCircle(listCotMoi);
            }
            //hiển thị lưới kích thước
            if (this.banVeChinh.HienKhoangCach)
            {
                DungLuoiKichThuoc();
            }
            //load lại
            //MessageBox.Show("hang" + soHang + "\ncot" + soCot + "\nkc hang" + khoangCachHang + "\nkc cot" + khoangCachCot + "\nX" + Xdrw + "\nY" + Ydrw);
            Lcad.DrwRegenViews(hDrw, 0);
            Lcad.WndExeCommand(hWnd, Lcad.LC_CMD_ZOOM_EXT, 0);
            Lcad.OnEventMouseDblClk(_EventMouseDbclick_LoMin);
            LuuHoChieu(this.hoChieuChinh.MaHoChieu);    //ăn gian...
            BS_LiteCAD.ShowNotifyAutoHide(elementHost1, "Xây dựng lưới lỗ khoan - hoàn thành");
        }