Bài 4: Class Picker (phần 1)

Class Picker

Lớp Picker có thể được sử dụng để yêu cầu người dùng chọn thủ công các đối tượng và điểm từ mô hình Tekla Structures. Các phương thức sẽ ném ra một ngoại lệ nếu người dùng gián đoạn (hủy bỏ) lệnh chọn.

Hàm khởi tạo

 

Quảng Cáo
Tekla.Structures.Model.UI.Picker picker = new Tekla.Structures.Model.UI.Picker(); 

Methods

PickFace() Yêu cầu người dùng chọn một mặt từ mô hình.
PickFace(String) Yêu cầu người dùng chọn một mặt từ mô hình với câu hỏi đã được cung cấp.
PickLine() Yêu cầu người dùng chọn một đường từ mô hình.
PickLine(String) Yêu cầu người dùng chọn một đường từ mô hình với câu hỏi đã được cung cấp.
PickObject(Picker. PickObjectEnum) Yêu cầu người dùng chọn một đối tượng mô hình từ mô hình.
PickObject(Picker. PickObjectEnum, String) Yêu cầu người dùng chọn một đối tượng mô hình từ mô hình với câu hỏi đã được cung cấp.
PickObjects(Picker. PickObjectsEnum) Yêu cầu người dùng chọn các đối tượng mô hình từ mô hình.
PickObjects(Picker. PickObjectsEnum, String) Yêu cầu người dùng chọn các đối tượng mô hình từ mô hình với câu hỏi đã được cung cấp.
PickPoint() Yêu cầu người dùng chọn một điểm từ mô hình.
PickPoint(String) Yêu cầu người dùng chọn một điểm từ mô hình với câu hỏi đã được cung cấp.
PickPoint(Point) Yêu cầu người dùng chọn một điểm từ mô hình liên quan đến điểm đã được cung cấp.
PickPoint(String, Point) Yêu cầu người dùng chọn một điểm với câu hỏi đã được cung cấp và tham chiếu đến một điểm khác.
PickPoints(Picker. PickPointEnum) Yêu cầu người dùng chọn các điểm từ mô hình.
PickPoints(Picker. PickPointEnum, String) Yêu cầu người dùng chọn các điểm từ mô hình với câu hỏi đã được cung cấp và tham chiếu đến một điểm khác.

Các hàm hay dùng

  • PickFace(String)
  • PickLine(String)
  • PickObject(Picker. PickObjectEnum, String)
  • PickObjects(Picker. PickObjectsEnum, String)
  • PickPoint(String)
  • PickPoints(Picker. PickPointEnum, String)

Thực hành

Tạo một nút trên giao diện

Double click vào buttom để tạo sự kiện nhấn vào nút, khởi tạo một đối tượng picker

 

 private void button1_Click(object sender, EventArgs e)
        {
            Tekla.Structures.Model.UI.Picker picker = new Tekla.Structures.Model.UI.Picker();
        } 

PickFace(String)

Chọn Face và show ra face đấy thuộc đối tượng nào, show ra Identier của đối tượng và điểm đầu tiên của polygon tạo nên face đã được chọn

private void button1_Click(object sender, EventArgs e)
        {
            Tekla.Structures.Model.UI.Picker picker = new Tekla.Structures.Model.UI.Picker();
            Tekla.Structures.Model.UI.PickInput pickInput = picker.PickFace("Chọn một mặt phẳng"); // picker.PickFace() sẽ trả về đối tượng Tekla.Structures.Model.UI.PickInput
            IEnumerator ienum = pickInput.GetEnumerator();
            while (ienum.MoveNext()) // Vòng lặp While duyệt từng phần tử của trong lớp IEnumerator
            {
                InputItem Item = ienum.Current as InputItem; // Ép kiểu phần tử đang được duyệt về Kiểu InputItem (Các phần tử được xét lần lượt thuộc kiểu dữ liệu InputItem)
                if (Item.GetInputType() == InputItem.InputTypeEnum.INPUT_1_OBJECT) //Kiểm tra kiểu phần tử đang được duyệt có phải là 1 object trong tekla không
                {
                    ModelObject M = Item.GetData() as ModelObject; // Ép kiểu về dạng ModelOject nếu Item là kiểu Object
                    MessageBox.Show(M.Identifier.ToString()); //Tạo MessageBox show ra Identifier của Object
                }
                if (Item.GetInputType() == InputItem.InputTypeEnum.INPUT_POLYGON) //Kiểm tra kiểu phần tử đang được duyệt có phải là 1 Polygon trong tekla không
                {
                    ArrayList Points = Item.GetData() as ArrayList; // Ép kiểu Polygon về dạng ArrayList, tập hợp danh sách điểm tạo nên Polygon
                    MessageBox.Show((Points[0] as TSG.Point).ToString()); ////Tạo MessageBox show ra điểm đầu tiền của Polygon

                }
            }
        }

Start ứng dụng và chạy thử (Chế độ hiện thị trong Tekla Structures phải để Part rendered-Ctrl+4). Nhấn nút Picker trong màn hình Tekla xuất hiện con trỏ và pick chọn face (Sẽ có thông báo “Chọn 1 mặt phẳng góc dưới bên trái màn hình”, dó chính là chuỗi string nhập vào từ dùng code:  Tekla.Structures.Model.UI.PickInput pickInput = picker.PickFace(“Chọn một mặt phẳng”);)

Thông báo về Identifier của cấu kiện xuất hiện, nhấn OK để tiếp tục.

Thông báo về tọa độ đầu tiên của đường Polygon bao quang face xuất hiện

Ứng dụng thêm: Chọn face và tạo ra mặt phẳng, tìm các điểm hoặc các đường bao của mặt phẳng đã chọn, từ đó giải quyết các bài toán hình học,….

PickLine(String)

Chọn Line và show ra tọa độ điểm đầu và cuối của đường Line

 private void button1_Click(object sender, EventArgs e)
        {
            Tekla.Structures.Model.UI.Picker picker = new Tekla.Structures.Model.UI.Picker();
            ArrayList arrayListPoint = picker.PickLine("Selection Line"); //Hàm PickLine trả về đổi tượng có kiểu ArrrayList là các phần tử là điểm đầu và cuối của đường Line
            string st = "";//Tạo một biến có kiểu dữ liệu string để lưu trữ phần tử trong ArrayList
            foreach (var item in arrayListPoint) // Tạo 1 vòng lặp foreach duyệt toàn bộ các phần tử trong ArrayList để lấy dữ liệu truyền vào st
            {
                TSG.Point point = item as TSG.Point; // Ép kiểu của phần tử về kiểu Point
                st+= point.ToString() +Environment.NewLine; // Ép kiểu point về string và truyền dữ liệu vào st
            }
            MessageBox.Show(st); // đưa ra màn hình kết quả của st
        }

Start ứng dụng và chạy thử. Nhấn nút Picker trong màn hình Tekla xuất hiện con trỏ và pick chọn face (Sẽ có thông báo “Selection Line” góc dưới bên trái màn hình đó chính là chuỗi string nhập vào từ dùng code:  ArrayList arrayListPoint = picker.PickLine(“Selection Line”);)

Thông báo về điểm đầu và điểm cuối của đường Line

 

Ứng dụng thêm: Chọn Line lấy tọa độ điểm, tính chiều dài, tạo vector, thay đổi hệ tọa độ,……

Scroll to Top
Verified by MonsterInsights