NỐI KẾT VÀ MÓC XÍCH DỮ LIỆU
(ACAD PHẦN 1)
Đã bao giờ bạn sử dụng vector trong Acad?
Nguyễn Phương Thảo - 525 - Điện Biên - TX. Yên Bái
Tôi đang có trong tay các chương trình chuyên dụng vẽ kỹ thuật xây dựng như ArchiCAD, 3D MAX... mà Bộ Xây dựng trang bị cho các Sở Xây dựng ở các tỉnh. Đồng thời tôi cũng dịch các chương trình đồ hoạ CAD khác ở chuyên ngành khác, của nước ngoài ra tiếng Việt. Nói chung, các chương trình đều rất tiện lợi cho mỗi chuyên ngành và tiện sử dụng. Bạn chỉ cần vẽ, đưa vào các tham số yêu cầu cho chuyên ngành mình, thì chương trình vẽ tự thực hiện, điều đó quá tiện lợi. Các chương trình CAD nhanh chóng vẽ xong và cho phép ta xử lý sản phẩm một cách dễ dàng, ví dụ như tôi vẽ xong một bản vẽ, tôi có thể lấy một mặt cắt bất kỳ bằng một thao tác Drag. Đồng thời tôi có thể đặt loại vật liệu và theo bảng giá chuẩn, sẽ lấy được luôn bảng dự toán, phân tích vật liệu...
AutoCAD là chương trình không phải chuyên ngành, bạn có thể vẽ cho bất cứ ngành nào những bản vẽ kỹ thuật của mình. Tuy nhiên, bạn chỉ tính toán được một số chức năng cơ bản như chu vi, khoảng cách, góc, diện tích... còn từ đó để trở thành bảng phân tích vật liệu hay bảng dự toán thì quá xa vời. Liệu ta có thể lập chương trình để lấy dữ liệu từ ACAD sang EXcel xử lý giúp không? Đương nhiên, chắc là được. Nhưng tôi muốn nêu ra cho chúng ta tham khảo những phương pháp tự động hoá. Chương trình mà Trung tâm Dạy nghề và Phổ cập Tin học Miền núi ABC của chúng tôi đang thực hiện. Bạn có đủ khả năng làm được việc đó, nếu như bạn biết copy và dán văn bản lập trình vào các module của bạn.
AutoCAD là chương trình của hãng AutoDESK, tại ACAD14 trở lên, tôi nhận thấy nó đã có hỗ trợ Visual Basic (Ngôn ngữ lập trình chuẩn của các chương trình Windows), như vậy, bạn đã có một công cụ "vàng" để thực hiện mọi mơ ước của mình, vì nếu sử dụng AutoLisp để lập trình như các version trước đó ta thấy nó quá thô kệch và máy móc. Visual Basic cho phép ta có thể chau chuốt để chương trình của chúng ta trông ra dáng chuyên nghiệp. Nếu bạn có thời gian, bạn có thể tỉa tót để thành những chương trình mà các nhà lập trình chuyên nghiệp phải nể.
Trước khi nói về móc xích dữ liệu, ta cần phải thống nhất một số khái niệm, vì tôi không được học chính quy về tin học và AutoCAD, vả lại ở miền núi, nên không rõ khái niệm cụ thể mà chúng ta đang dùng là gì cho thống nhất. Những phần nào không rõ từ Việt, tôi tạm thời viết nguyên văn bằng tiếng Anh mong các bạn thông cảm và chỉ bảo.
Đầu tiên, tôi xin phép được nói về Vector:
Vector là một đoạn thẳng có hướng là chiều nối 2 điểm đầu đoạn thẳng. Khi đã xác định được 1 vector ta có thể dịch chuyển cả một tập hợp đối tượng theo chiều vector đó, gọi là phép tịnh tiến.
- Để định nghĩa một Vector ta dùng công thức
Vec(A,B) - Vector có chiều AB và độ dài là AB.
Vec1(A,B) - Vector có chiều AB và có độ dài = 1.
L*vec1(A,B) - Vector có chiều AB và có độ dài L.
- Để truy bắt 1 điểm xác định từ một điểm khác thông qua một vector ta sử dụng công thức:
Điểm gốc + Vector
- Để tính toán chiều dài của một vector ta sử dụng công thức: ABS(Vector)
- Để tính toán một góc của một vector với trục hoành ta sử dụng công thức: ANG(Vector).
- Để biết một chiều vuông góc với chiều của một vector ta sử dụng NOR(Vector). Hoặc NOR(A,B).
Ghi nhớ các hàm tắt:
Vì phạm vi bài viết có hạn nên tôi chỉ nêu một số công thức cơ bản, không phải là tất cả. Bạn phải tham khảo qua các tài liệu khác về ACAD. Trước khi làm việc về vấn đề nối kết, bạn phải là người thành thạo các cách vẽ ACAD, bài viết này xin nêu sơ bộ một số vấn đề liên quan đến nối kết.
Ứng dụng và ví dụ cụ thể:
A. Đặt tên điểm vẽ:
Trong những bản vẽ lớn, có thể có rất nhiều đường vẽ nhằng nhịt nếu nối vào một điểm chính xác cần phải đặt tên điểm vẽ. Ví dụ như TAMGIENG, GOCQUEO, TAYBAC...
Khi cần ta có thể nối thẳng vào tên các điểm thay vì phải truy bắt và đánh toạ độ.
Cách đặt tên điểm vẽ:
Command:
CAL ¿>> Expression:
Đánh vào Tên_điểm=Biểu thức ¿Trong đó: Tên điểm được đánh bằng chữ không dấu và không có dấu cách.
Biểu thức dùng các biểu thức cộng trừ nhân chia luỹ thừa với các điểm đặc biệt của hình vẽ.
Ví dụ: Đặt tên điểm của hình bình hành.
CAL
¿ >> Expression: TAMHBH=MEE ¿
:
điểm END thứ nhất, : điểm END thứ 2 ¿ þ(: là ký hiệu thao tác truy bắt, còn þ là ký hiệu kết thúc lệnh)
Các ví dụ:
VD1a. Ví dụ sau cất 2 biểu thức vào hai biến P1 and R1.
Command:
cal ¿>> Expression
: P1=cen+[1,0] ¿>> Select object for CEN snap:
Chọn 1 vòng tròn, hoặc 1 cung ¿ þCommand:
cal ¿>> Expression:
R1=dist(end,end)/3 ¿ þVD1b. Ví dụ sau sử dụng các biến P1 và R1:
Command
: circle ¿ (hoặc c ¿ )3P/2P/TTR/<Center point>:
'cal ¿>> Expression:
P1 +[0,1] ¿Diameter/<Radius>:
'cal ¿>> Expression:
R1 +0.5 ¿ þXin bạn lưu ý:
Nếu đánh lệnh từ con trỏ lệnh Command ta sử dụng Cal độc lập , còn nếu bạn đánh từ trong một lệnh khác bạn nhớ đánh thêm dấu phảy trên trước lệnh Cal để thành 'cal.
VD2. Ví dụ sau sử dụng lệnh CAL để di chuyển các đối tượng được chọn đi 3 đơn vị theo chiều từ tâm của một vòng tròn được chọn tới tâm của một vòng tròn được chọn khác.
Command:
move ¿Select objects:
: các đối tượng cần chi chuyển ¿Base point or displacement:
'cal ¿>> Expression:
3*vec1(cen,cen) ¿ Tiến hành : 2 tâm.Second point of displacement:
Click chọn 1 điểm hoặc : ¿VD3. Sử dụng @ trong biểu thức để chỉ định điểm cuối cùng vừa chọn, như ví dụ sau:
Command:
line ¿From point:
'cal ¿>> Expression:
cen+[0,1] ¿>> Select object for CEN snap:
Sử dụng các phương pháp lựa chọn đối tượng.To point:
'cal ¿>> Expression:
@+3*vec1(cen,cen) ¿ ¿ þĐiểm đầu tiên của đoạn thẳng là điểm song song với trục Y cách tâm vòng tròn được chọn thứ nhất 1 đơn vị. Điểm thứ 2 của đoạn thẳng cách 3 đơn vị kể từ điểm thứ nhất. Hướng của đoạn thẳng là từ tâm của vòng tròn thứ nhất được chọn tới tâm của vòng tròn thứ 2 được chọn
VD3. Ví dụ sau sử dụng rad trong lệnh vẽ CIRCLE. Bán kính của vòng tròn mới bằng 3/2 của bán kính cùng đa tuyến được chọn:
Command:
circle ¿3P / 2P / TTR / <Center point>:
cen ¿of Select the circle:
: vòng tròn.Diameter / <Radius>:
'cal ¿>> Expression:
2/3*rad ¿>> Select circle, arc or polyline segment for RAD function:
Chọn vòng tròn ¿ þBạn thân mến, phần trên tôi đã đưa ra thứ tự từng ví dụ có sử dụng lệnh Cal để bạn làm việc với vector, chính phần này các sách không đề cập đến nhưng nó lại gợi cho bạn quá nhiều vấn đề. Chính tôi viết chi tiết như vậy, để bạn hiểu thư tự từng bước mà bạn phải viết khi lập trình AutoLisp hay tạo một kịch bản lập trình, tuy nhiên ta căn cứ vào kịch bản này để lập trình VBA lại cũng chỉ để .... tham khảo mà thôi. (Xin xem bài sau).
PcLeHoan
1996 - 2002
Mirror :
http://www.pclehoan.com
Mirror :
http://www.lehoanpc.net
Mirror :
http://www.ktlehoan.com