3.3.2Các lớp mô tả đối tượng cấu kiện “Dầm BTCT”, “Cọc BTCT”, “Bản BTCT”:

Một phần của tài liệu Xây dựng phần mềm mô tả cấu tạo hình học của một số cấu kiện dưới dạng số liệu vectơ (Trang 50)

Phần 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

3.3.2Các lớp mô tả đối tượng cấu kiện “Dầm BTCT”, “Cọc BTCT”, “Bản BTCT”:

Đối tượng mặt cắt cơ sở: là đối tượng mặt cắt cơ sở để xây dựng nên các đối tượng mặt cắt khác nhau như mặt cắt chữ nhật, mặt cắt vuông, mặt cắt tròn, mặt cắt chữ T, chữ I,…. Đối tượng này chỉ bao gồm thuộc tính chung là tọa độ tâm mặt cắt và các hành vi mô tả hành động cơ bản của mặt cắt. Đối tượng này được tạo thành từ lớp mặt cắt (clsSection).

Đối tượng mặt cắt chữ nhật, mặt cắt tròn, mặt cắt vuông : là các đối tượng

mặt cắt kế thừa từ đối tượng mặt cắt cơ sở (clsSection). Ngoài ra có thêm các thuộc tính và phương thức riêng của chúng. Các đối tượng này được xây dựng từ các lớp mặt cắt chữ nhật (clsSectionRectangle), mặt cắt tròn(clsSectionCircle), mặt cắt vuông(clsSectionSquare).

Đối tượng hình trụ: là đối tượng cơ sở để xây dựng các đối tượng dầm, cọc, bản. Đối tượng này mô tả đối tượng hình trụ bao gồm mặt cắt đầu, mặt cắt cuối (tạo thành từ lớp mặt cắt clsSection) chiều dài, đường kính cốt thép chủ, cốt thép đai, bố trí cốt thép đai,… Các đối tượng này được xây dựng từ lớp hình trụ (clsCylinder).

Đối tượng dầm BTCT, đối tượng cọc BTCT, bản BTCT: là các đối tượng kế

được xây dựng bằng cách kế thừa các thuộc tính và hành vi của đối tượng hình trụ. Các đối tượng này được xây dựng từ lớp dầm (clsBeam), lớp cọc (clsPilling), lớp bản (clsPlate)

3.3.2.2 Mô hình quan hệ giữa các lớp của các đối tượng

Hình 11. Mô hình quan hệ giữa các lớp mặt cắt ngang cấu kiện.

3.3.2.3 Cấu trúc các lớp trong mô hình quan hệ giữa các lớp

Lớp mặt cắt cơ sở (clsSection): là lớp cơ sở mô tả đối tượng mặt cắt cơ sở.

Các trường dữ liệu: Tọa độ tâm (lớp điểm clsPoint)

Các phương thức:

o Phương thức Draw() : được khai báo mẫu dùng để vẽ mặt cắt. Hàm này sẽ được ghi đè trong các lớp kế thừa từ lớp này.

o Phương thức GetCornerCoordinate() : được khai báo mẫu dùng để tính toàn và trả lại tọa độ các đỉnh của mặt cắt (nếu có). Hàm này sẽ được khai báo và ghi đè lại trong các lớp kế thừa.

o Phương thức GetSteelCoordinate() : được khai báo mẫu trong lớp này và dùng để tính toán và trả lại tọa độ của cốt thép chủ đi qua mặt cắt. Hàm này sẽ được khai báo lại và ghi đè trong các lớp kế thừa.

Lớp mặt cắt tròn (clsSectionCircle): mô tả đối tượng mặt cắt hình tròn và

bố trí cốt thép của mặt cắt đó. Lớp này kế thừa từ lớp mặt cắt cơ sở (clsSection).

Các trường dữ liệu: ngoài những thuộc tính kế thừa từ lớp cơ sở lớp này còn

có các trường dữ liệu sau:

o dblR : là bán kính của mặt cắt tròn.

o dblOffset: là chiều dày lớp bê tông bảo vệ của mặt cắt tính từ mép ngoài

Các phương thức:

o clsSectionCircle(),clsSectionCircle(Radius,Offset,MainSteel Count) là phương thức khởi tạo lớp.

o clsDraw() : là phương thức dùng để vẽ mặt cắt.

o GetSteelCoordinate() : tính toán và trả lại vị trí của các cốt thép dọc chủ đi qua mặt cắt.

Lớp mặt cắt chữ nhật (clsSectionRectangle): mô tả đối tượng mặt cắt hình

chữ nhật và bố trí cốt thép trên mặt cắt đó. Lớp này kế thừa từ lớp mặt cắt cơ sở (clsSection).

Các trường dữ liệu: ngoài những thuộc tính kế thừa từ lớp cơ sở lớp này còn

có các trường dữ liệu sau:

o dblB : mô tả chiều rộng của mặt cắt chữ nhật. o dblH : mô tả cao của mặt cắt chữ nhật.

o strSteelArrColAbove: xâu ký tự mô tả bố trí cốt thép chủ theo phương (adsbygoogle = window.adsbygoogle || []).push({});

ngang ở thớ trên của dầm.

o strSteelArrRowAbove :xâu ký tự mô tả bố trí cốt thép chủ theo phương

đứng ở thớ trên của dầm.

o strSteelArrColBelow: xâu ký tự mô tả bố trí cốt thép chủ theo phương

ngang ở thớ dưới của dầm.

o strSteelArrRowBelow: xâu ký tự mô tả bố trí cốt thép chủ theo phương

đứng ở thớ dưới của dầm.

o _CornerCoordinate: tập hợp tọa độ các điểm góc của mặt cắt chữ nhật.

o _SteelCoordinate: tập hợp tọa độ các điểm của các thanh cốt thép dọc

chủ bố trí trên mặt cắt.

Các phương thức:

o clsSectionRectangle(): khởi tạo lớp.

o Draw() : vẽ mặt cắt.

o GetCornerCoordinate() : dùng để tính toàn và trả lại tọa độ các đỉnh của mặt cắt .

o GetSteelCoordinate() : dùng để tính toán và trả lại tọa độ của cốt thép

và bố trí cốt thép trên mặt cắt đó. Lớp này kế thừa từ lớp mặt cắt cơ sở (clsSectionReactangle).

Các trường dữ liệu: ngoài những thuộc tính kế thừa từ lớp cơ sở lớp này còn

có các trường dữ liệu sau:

o dblOffset : mô tả chiều dày lớp bê tông bảo vệ

o intMainSteelCount : mô tả số thanh cốt thép dọc chủ đi qua mặt cắt.

Các phương thức:

o clsSectionRectangle(): khởi tạo lớp.

o Draw() : dùng để vẽ mặt cắt vuông.

o GetCornerCoordinate() : dùng để tính toàn và trả lại tọa độ các đỉnh của mặt cắt .

o GetSteelCoordinate() : dùng để tính toán và trả lại tọa độ của cốt thép

chủ đi qua mặt cắt.

Lớp hình trụ (clsCylinder): mô tả đối tượng hình trụ. Lớp này là lớp cơ sở

cho các lớp dầm BTCT (clsBeam), lớp cọc BTCT (clsPilling), lớp bản BTCT (clsPlate).

Các trường dữ liệu:

o _ID : Chỉ số xác định số thứ tự của đối tượng trong bản vẽ. (adsbygoogle = window.adsbygoogle || []).push({});

o dblLength : Chiều dài của hình trụ.

o dblMainSteelDiameter : Đường kính cốt thép chủ của hình trụ.

o dblBowSteelDiameter : Đường kính cốt thép đai bố trí của hình trụ

o _FirstSection : Mặt cắt đầu tiên của hình trụ có kiểu là lớp mặt cắt

chung (clsSection).

o _SecondSection : Mặt cắt cuối của hình trụ có kiểu là lớp mặt cắt chung

(clsSection).

o strSteelBowArrange: Xâu mô tả cách bố trí cốt thép đai dọc theo chiều

dài hình trụ.

o _Plane : Mặt phẳng chứa mặt cắt đầu và cuối của hình trụ. Có thể là

OXY, OYZ, OZX.

o _Fill: Mô tả thuộc tính có tô đặc hình trụ hay ko.

Các phương thức:

Lớp dầm BTCT (clsBeam): mô tả đối tượng dầm bê tông cốt thép. Lớp này kế

thừa từ lớp hình trụ (clsCylinder).

Các trường dữ liệu: các thuộc tính của lớp này kế thừa từ lớp cơ sở

Các phương thức:

o clsBeam(): khởi tạo lớp.

o DrawBorderBeam(): Dùng để vẽ đường bao của dầm 3D.

o DrawMainSteel(): Dùng để vẽ cốt thép chủ dọc dầm.

o DrawBowSteel(): Dùng để vẽ cốt thép đai dọc dầm.

o Draw() : dùng để vẽ dầm vào bản vẽ.

Lớp cọc BTCT (clsPilling): mô tả đối tượng cọc bê tông cốt thép. Lớp này

kế thừa từ lớp hình trụ (clsCylinder).

Các trường dữ liệu: các thuộc tính của lớp này kế thừa từ lớp cơ sở

Các phương thức:

o clsPilling(): khởi tạo lớp.

o DrawBorderSquare(): Dùng để vẽ đường bao của cọc 3D mặt cắt vuông.

o DrawBorderCircle(): Dùng để vẽ đường bao của cọc 3D mặt cắt tròn.

o DrawMainSteel(): Dùng để vẽ cốt thép chủ dọc chiều dài cọc 3D. (adsbygoogle = window.adsbygoogle || []).push({});

o DrawBowSteelSquare(): Dùng để vẽ cốt thép đai dọc chiều dài cọc 3D

mặt cắt vuông.

o DrawBowSteelCircle(): Dùng để vẽ cốt thép đai dọc chiều dài cọc 3D

mặt cắt tròn.

o Draw() : dùng để vẽ cọc vào bản vẽ.

Lớp bản BTCT (clsPlate): mô tả đối tượng bản bê tông cốt thép. Lớp này kế

thừa từ lớp hình trụ (clsCylinder).

Các trường dữ liệu: các thuộc tính của lớp này kế thừa từ lớp cơ sở

Các phương thức:

o clsPlate(): khởi tạo lớp.

o DrawBorderPlate(): Dùng để vẽ đường bao của bản BTCT 3D.

o DrawGridSteel(): Dùng để vẽ lưới cốt thép bố trí trong bản. Draw() : dùng để vẽ bản BTCT 3D vào bản vẽ.

Lớp quản lý bản vẽ (clsDrawingManager):mô tả đối tượng bản vẽ hiện tại của

chương trình.

Các trường dữ liệu: lớp con clsCSView, form ActForm là nơi dùng để quản lý bản vẽ hiện tại.

Các phương thức: Phương thức khởi tạo clsDrawingManager() dùng để khởi dựng lớp.

Lớp quản lý các form (clsFormManager): để quản lý các form đang chạy trong

chương trình:

Các trường dữ liệu: bao gồm các form

o MainForm : là form chính của chương trình.

o InputCSParamForm: là form nhập yếu tố dùng để bố trí và hiển thị mặt cắt

ngang lên bản vẽ như số hàng và số cột, khoảng cách hàng và cột,… o TableViewStyle: là form nhập các mô tả đầu trắc ngang, chiều dài đầu

trắc ngang, kiểu chữ hiển thị trên mặt cắt ngang.

Lớp quản lý biến chung (clsGlobal): quản lý các hằng số và các biến chung

của chương trình.

Lớp xử lý file XML (clsXML):Đọc và ghi tệp dữ liệu lưu trữ thông số hiển thị

và dữ liệu của mặt cắt ngang.

Các trường dữ liệu: các đối tượng mặt cắt ngang đường , tên tệp XML

Các phương thức:

o Phương thức: WriteCSectionDatatoXMLfile()ghi các dữ liệu hiển thị của đối tượng “mặt cắt ngang đường” vào tệp. (adsbygoogle = window.adsbygoogle || []).push({});

o Phương thức: ReadCSectionDatatoXMLfile()đọc các dữ liệu hiển thị của đối tượng “mặt cắt ngang đường” từ tệp.

3.3.4 Định dạng các tệp dữ liệu được thiết kế trong chương trình.

3.3.4.1 Cấu trúc của tệp dữ liệu cao độ các điểm của mặt cắt ngang tự nhiên.

Dữ liệu để xây dựng mặt cắt ngang đường là kết quả của quá trình thiết kễ và tính toán từ bước 1 đến bước 5. Tuy nhiên, trong phạm vi đồ án này, các bước từ 1 đến 5 không được xét đến. Nên dữ liệu để xây dựng mặt cắt ngang đường sẽ được lấy từ chương trình khác.

Tệp dữ liệu lưu trữ cao độ các điểm của mặt cắt ngang tự nhiên (định dạng đuôi *.GRS) và thiết kế (định dạng đuôi *.DRS) là các tệp văn bản có cấu trúc như sau:

- Dòng 1: <Lý trình mặt cắt> <Dấu cách><Số điểm (n2) > - Dòng 2: <Khoảng cách><Dấu cách><Cao độ>

- Dòng 3: tương tự dòng một. - ….

- Dòng n1: tương tự dòng trên.

- Dòng n1+1:<Lý trình mặt cắt> <Dấu cách><Số điểm (n2) > - Dòng n1+2: <Khoảng cách><Dấu cách><Cao độ>

- Dòng n1+3: tương tự dòng trên. - ….

- Dòng n: tương tự dòng trên. - …

Giải thích:

- <Lý trình mặt cắt>: ghi dưới dạng “KMA+B” (ví dụ “KM0+123.00”). - <Số điểm>: là số nguyên mô tả số điểm của trên mặt cắt ngang.

- <Khoảng cách>: là khoảng cách của điểm đến tim tuyến. - <Cao độ>: là cao độ của điểm của mặt cắt ngang.

Ví dụ:một tệp dữ liệu sử dụng để chạy trong chương trình

KM0+000.00 4 -29.9999999999998 520.003952733369 -12.6395559087889 520.006144317258 23.9875730509997 520.008425753787 29.9999999999998 520.008385866835 KM0+025.00 4 -29.9999999999998 520.002590542799 -25.0261016123915 520.003218448141 2.9002141597665 520.004957927011 29.9999999999997 520.006971094908 KM0+050.00 3 -30.0000000000002 520.000895825719 -21.0678466385241 520.001871222749 29.9999999999997 520.00722630425 KM0+059.49 3 -29.9999999999998 520.000830615896 26.5524041660169 520.006760819603 29.9999999999998 520.007016427491

3.3.4.2 Cấu trúc của tệp dữ liệu lưu trữ dữ liệu về hiển thị của mặt cắt ngang trên bản vẽ.

Để lưu trữ các thông tin về hiển thị mặt cắt ngang. Chương trình sẽ lưu vào tệp có định dạng (*.xml) có cấu trúc như sau:

<?xml version="1.0" ?> <SectionLists>

<SectionViewSettings>

<DrawCheckAllSec="True" Flag="True" CSNoData="True" />

<ScaleX="1" Y="1" />

<RowCount="3" Offset="10" />

<Column Count="5" Offset="10" />

<ElevationOffset>10</ElevationOffset>

<FlagOffset>15</FlagOffset>

<HeaderTable CellLength="50">

<TextStyleSectionName="Tieu chuan" Station="Tieu chuan" Header="Tieu chuan" Number="Tieu chuan" />

<CSDescript>

<ContentID="1" Descript="Cao do tu nhien" CellHeight="15" /> (adsbygoogle = window.adsbygoogle || []).push({});

<ContentID="2" Descript="Khoang cach le tu nhien" CellHeight="5" /> </CSDescript>

</HeaderTable>

</SectionViewSettings>

<SectionData ID="0" Name="KM0+000.00" Station="0">

<InsertionX="30.5436337625179" Y="29.4706723891273" />

<ExistingGround>

<EGPointID="0" Offset="-29.9999999999998" Elevation="520.003952733369" />

<EGPointID="1" Offset="-12.6395559087889" Elevation="520.006144317258" />

<EGPointID="2" Offset="0" Elevation="520.006931611959" />

<EGPointID="3" Offset="23.9875730509997" Elevation="520.008425753787" />

<EGPointID="4" Offset="29.9999999999998" Elevation="520.008385866835" />

</ExistingGround>

<DesignGround>

<DGPointID="0" Offset="-6.38380114513399" Elevation="520.006533976722" />

<DGPointID="1" Offset="-6.25000000000014" Elevation="519.905931611959" />

<DGPointID="2" Offset="-5.84999999999986" Elevation="519.505931611959" />

<DGPointID="3" Offset="-5.45000000000005" Elevation="519.505931611959" />

<DGPointID="4" Offset="-5.04999999999977" Elevation="519.905931611959" />

<DGPointID="5" Offset="-4.55000000000004" Elevation="519.935931611959" />

<DGPointID="6" Offset="-3.55000000000008" Elevation="519.935931611959" />

<DGPointID="7" Offset="0" Elevation="520.006931611959" />

<DGPointID="8" Offset="3.55000000000008" Elevation="519.935931611959" />

<DGPointID="9" Offset="4.55000000000004" Elevation="519.935931611959" />

<DGPointID="10" Offset="5.04999999999977" Elevation="519.905931611959" />

<DGPointID="11" Offset="5.45000000000005" Elevation="519.505931611959" />

<DGPointID="12" Offset="5.84999999999986" Elevation="519.505931611959" />

<DGPointID="13" Offset="6.25000000000014" Elevation="519.905931611959" />

<DGPointID="14" Offset="6.38485894249747" Elevation="520.007329313085" />

<DesignGround> </SectionData> </SectionLists>

3.3.5 Phân tích thiết kế các giao diện cho chương trình. (adsbygoogle = window.adsbygoogle || []).push({});

Chương trình phải có đầy đủ mọi chức năng cần thiết của một chương trình CAD thông dụng do giao diện phải đáp ứng được các yêu cầu sau:

 Do nhu cầu quản lý nhiều bản vẽ cùng một lúc do vậy chương trình phải được thiết kế ngoài giao diện chính còn phải thiết kế các giao diện phụ để quản lý nhiều bản vẽ cùng một lúc

 Hệ thống menu đầy đủ rõ ràng cung cấp các chức năng vẽ hình học cần thiết.

 Hệ thống các thanh công cụ với các chức năng cần thiết cơ bản giúp người dùng có thể thao tác ngay trên giao diện chính mà không phải chọn thông qua hệ thông menu đã cung cấp.

 Cung cấp một cửa sổ dòng lệnh giao tiếp giữa người dùng và chương trình. Giúp người dùng thao tác nhanh hơn trong quá trình vẽ.

 Các giao diện nhập dữ liệu phục vụ cho việc vẽ các đối tượng “Mặt cắt

ngang”, các cấu kiện “Dầm BTCT”, “Cọc BTCT”, “Bản BTCT” phải rõ

ràng, chi tiết, hình vẽ minh họa giúp người dùng dễ dàng nhập dữ liệu cho các đối tượng của mình.

Phần 4: XÂY DỰNG CHƯƠNG TRÌNH

Một phần của tài liệu Xây dựng phần mềm mô tả cấu tạo hình học của một số cấu kiện dưới dạng số liệu vectơ (Trang 50)