Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
ssg

Xây dựng nội dung và cấu trúc chương trình

Các bài được khuyến nghị

Đây là việc rất quan trọng, có tính định hướng cho các bước tiếp theo, rất cần sự tham gia đóng góp của toàn thể các bạn trong diễn đàn, kể cả các bạn đang còn chưa hiểu gì về lisp.

Mục tiêu cần đạt được: Một bảng thống kê tương đối hoàn chỉnh các lệnh của CVU, theo từng chương, mục, mục con..., tương tự như mục lục sách. Mỗi lệnh có 2 hoặc 3 thành phần sau:

1) Tên lệnh: Thể hiện nội dung chính của lệnh. Yêu cầu ngắn gọn và súc tích.

Ví dụ (lệnh chính thống của Acad): LINE

2) Dòng chú giải (comment): có thể dài hơn, giải thích rõ hơn về công dụng và bản chất của lệnh.

Ví dụ: Khi bạn select Menu-Draw-Line, tại thanh Status Bar (dưới đáy màn hình Acad) hiện ra dòng:

"Creates straight line segments: LINE". Đó là dòng comment, còn gọi là Help String.

3) Các lệnh con (nếu có).

Ví dụ: Command: circle

Specify center point for circle or [3P/2P/Ttr (tan tan radius)]:

Mặc định là center-radius và 3 lệnh con là 3P/2P/Ttr.

3 thành phần trên sẽ hiển thị trên giao diện khi chạy chương trình. Ngoài ra, bạn có thể giải thích thêm để lập trình viên hiểu chính xác ý đồ của bạn.

Tạm thời, ssg xin đưa ra hình minh hoạ sau để các bạn thấy cụ thể hơn dáng dấp của CVU trong tương lai. Đây là ví dụ minh hoạ, nó chỉ có cái "vỏ", chưa có "ruột":

 

menu1.jpg

 

Trong đó, nhóm "Các lệnh thường dùng nhất" là nhóm chủ lực, bao gồm các thao tác mà Kiến trúc sư và Kỹ sư xây dựng thường dùng nhất và mất nhiều thời gian nhất trong quá trình thiết kế và vẽ. Mời các bạn xem lại bài viết của ssg trong "CadViet Software - Tại sao không?" để hiểu thêm.

Ssg xin nhấn mạnh điều này: khả năng của lisp rất lớn, hầu như bất cứ thao tác gì bạn thực hiện trực tiếp trên Acad đều có thể làm tự động được bằng lisp. Nếu biết khai thác tốt, bạn có thể tăng năng suất vẽ và thiết kế với Acad lên gấp nhiều lần (theo ssg là không dưới 3 lần).

Đừng ngại ngần, hãy nêu càng nhiều càng tốt yêu cầu của bạn, CadViet Utility sẵn sàng đáp ứng!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Ssg xin nêu 1 ví dụ cụ thể hơn để các bạn tham khảo. Cái này ssg đã viết rồi, sẽ đưa vào CVU.

Lệnh vẽ thép hình

1) Tên lệnh: ThepHinh

2) Comment: Vẽ mặt cắt các thép định hình chữ I, U, V, L theo bảng tiêu chuẩn

3) Lệnh con: thep_I/ thep_U/thep_V/ thep_L

(thép V là thép góc đều cạnh - Equal Angle, thép L là thép góc không đều cạnh - Unequal Angle)

Giải thích thêm:

Các thông số hình học mặt cắt các thép định hình trên được lưu trong các file dữ liệu. Khi nhận lệnh, chương trình sẽ hiện ra một dialog, trong đó có popup_list (combo box) chứa ký hiệu các thép hình để người dùng chọn (ví dụ: I-100, I-120, I-140.... ). Bấm OK, chỉ định điểm chuẩn (base point). Chương trình sẽ tự động tra các thông số và vẽ mặt cắt thép hình đã chọn. Nếu cần, có thể hiển thị các thông số như: khối lượng 1m dài (kg/m), mô men quán tính J (cm4), mô men chống uốn W (cm3)....

Đặc biệt, người dùng có thể dễ dàng mở các file dữ liệu bằng Excel để biên tập, sửa đổi, bổ sung thêm các quy cách mặt cắt thép khác nhau tuỳ thích.

Xin nói rõ hơn, bản thân ssg là kỹ sư cơ khí. Về mảng Kiến trúc - Xây dựng còn rất lơ mơ. Rất mong được các bạn am hiểu chuyên ngành này tích cực hỗ trợ để hoàn thiện bảng "Nội dung và cấu trúc chương trình". Khi đã hiểu rõ yêu cầu thì việc viết code không thành vấn đề. Ngoài ssg, trong forum chúng ta còn có rất nhiều cao thủ lisp sẽ ra tay.

Nào, mời các bạn tiếp tục!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Jin xin có những ý kiến như sau:

- Đây là một ý tưởng tuyệt vời. Nếu thành công (và chắc chắn sẽ thành công), nó không chỉ là một sản phẩm cùng hợp tác, mà nó còn là một món quà kỷ niệm đầy ý nghĩa, và biết đâu, CVU lại trở thành một chuẩn được ghi nhận trong tương lai.

- Đã là một công trình hợp tác có ý đồ, được quản lý dưới một tập hợp người thống nhất, thì ngay từ đầu cũng nên có những ý kiến thống nhất về cách thức. Chẳng hạn, các câu lệnh gọi ra không nên vượt quá 3 chữ cái. Trong đó, nên giành chữ cái đầu tiên để biểu tượng cho CadViet (chẳng hạn "C" & "TH" = "cth" để làm tạo thành lệnh Vẽ thép hình như bài trên đã nói). Hoặc chữ cái đầu tiên này có vai trò phân loại lệnh thuộc nhóm nào. Chẳng hạn Kiến Trúc bắt đầu bằng chữ A, Xây Dựng là C... v.v

- Dù vẫn biết thời gian còn dài, và cần huy động nhiều người (chẳng hạn như mảng Xây Dựng hiện nay còn ít người). Nhưng cũng cần có kế hoạch rõ ràng về các bước thực hiện. Chẳng hạn đến thời điểm nào đó sẽ định rõ bộ khung cho CVU (gồm những phần nào, các phần gồm những lệnh gì...). Rồi tiếp tục tiến tới các bước code cụ thể

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Rất hoan nghênh và ghi nhận ý kiến của Jin.

Theo ssg, các lệnh của CVU bắt đầu bằng chữ C là hợp lý. Đội ngũ biên soạn sẽ chọn lọc, sắp xếp để tên lệnh thoả mãn các tiêu chí:

- Thể hiện nội dung chính của lệnh

- Càng ngắn càng tốt

- Không trùng nhau

- Không trùng với tên lệnh hoặc aliases chuẩn của Acad

Trước mắt, các bạn không cần quan tâm đến điều đó. Cái chúng ta đang cần là nội dung, công dụng, bản chất của lệnh (chưa có nội dung, lấy gì mà sắp xếp!).

Về thời hạn hoàn thành bảng "Nội dung và cấu trúc chương trình" thì ssg không thể xác định được, nếu như các bạn không đóng góp xây dựng. Phần lớn các chương trình lisp mà chúng ta đang có (đã đưa lên diễn đàn), chỉ có thể xếp vào nhóm "Các lệnh hỗ trợ", chưa phải là nội dung chính của chương trình.

Ssg xin nhắc lại, khả năng của lisp rất lớn. Lisp không chỉ biết có vẽ mà còn biết tính toán (đại số lẫn hình học), biết phân tích logic, có thể phân tích tính hợp lý hay không của thiết kế. Chẳng hạn, một lệnh đại loại như "Kiểm tra tính hợp lý về kích thước, vị trí của các cửa và cầu thang theo quan điểm phong thuỷ" không phải là quá khó đối với lisp.

Đây là công trình mang tính tập thể của tất cả các thành viên CadViet. Một lần nữa, ssg kêu gọi toàn thể các bạn, đặc biệt là các bạn Kiến trúc sư và Kỹ sư xây dựng, hãy tích cực tham gia. Mỗi người đóng góp một chút, tổng hợp lại sẽ thành việc lớn. Nếu còn băn khoăn, vướng mắc gì, xin cũng nêu lên. Chúng ta sẽ cùng bàn bạc và chung tay giải quyết.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bên phần Xây Dựng, Jin muốn đóng góp vào đó một vài phần

Đầu tiên là chương trình thống kê cốt thép Jin vừa làm xong, đã được Post ở Topic: Thống kê cốt thép - CTK

 

Jin cũng đang muốn làm tiếp các phần Lisp tự động vễ các kết cấu, hy vọng đóng góp được vào dự án xây dựng CVU

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Bên phần Xây Dựng, Jin muốn đóng góp vào đó một vài phần

Đầu tiên là chương trình thống kê cốt thép Jin vừa làm xong, đã được Post ở Topic: Thống kê cốt thép - CTK

 

Jin cũng đang muốn làm tiếp các phần Lisp tự động vễ các kết cấu, hy vọng đóng góp được vào dự án xây dựng CVU

 

Hoan hô Jin!

Mong các bạn khác cùng chung sức!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tôi là dân giao thông, cũng đã viết nhiều lisp ứng dụng trong công việc, rất tiện lợi, muốn đóng góp ít công sức vào mảng thiêt kế cầu đường kô biết được kô?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Rất hoan nghênh civil. Vậy civil hãy tạo 1 topic riêng nói giới thiệu về những lisp mà civil định đóng góp cho cadviet. sau đó chúng ta sẽ cùng bàn bạc và thông nhất về nội dung chương trinh nhé \:lol:/

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Đây là việc rất quan trọng, có tính định hướng cho các bước tiếp theo, rất cần sự tham gia đóng góp của toàn thể các bạn trong diễn đàn, kể cả các bạn đang còn chưa hiểu gì về lisp.

Mục tiêu cần đạt được: Một bảng thống kê tương đối hoàn chỉnh các lệnh của CVU, theo từng chương, mục, mục con..., tương tự như mục lục sách. Mỗi lệnh có 2 hoặc 3 thành phần sau:

1) Tên lệnh: Thể hiện nội dung chính của lệnh. Yêu cầu ngắn gọn và súc tích.

Ví dụ (lệnh chính thống của Acad): LINE

2) Dòng chú giải (comment): có thể dài hơn, giải thích rõ hơn về công dụng và bản chất của lệnh.

Ví dụ: Khi bạn select Menu-Draw-Line, tại thanh Status Bar (dưới đáy màn hình Acad) hiện ra dòng:

"Creates straight line segments: LINE". Đó là dòng comment, còn gọi là Help String.

3) Các lệnh con (nếu có).

Ví dụ: Command: circle

Specify center point for circle or [3P/2P/Ttr (tan tan radius)]:

Mặc định là center-radius và 3 lệnh con là 3P/2P/Ttr.

3 thành phần trên sẽ hiển thị trên giao diện khi chạy chương trình. Ngoài ra, bạn có thể giải thích thêm để lập trình viên hiểu chính xác ý đồ của bạn.

Tạm thời, ssg xin đưa ra hình minh hoạ sau để các bạn thấy cụ thể hơn dáng dấp của CVU trong tương lai. Đây là ví dụ minh hoạ, nó chỉ có cái "vỏ", chưa có "ruột":

 

menu1.jpg

 

Trong đó, nhóm "Các lệnh thường dùng nhất" là nhóm chủ lực, bao gồm các thao tác mà Kiến trúc sư và Kỹ sư xây dựng thường dùng nhất và mất nhiều thời gian nhất trong quá trình thiết kế và vẽ. Mời các bạn xem lại bài viết của ssg trong "CadViet Software - Tại sao không?" để hiểu thêm.

Ssg xin nhấn mạnh điều này: khả năng của lisp rất lớn, hầu như bất cứ thao tác gì bạn thực hiện trực tiếp trên Acad đều có thể làm tự động được bằng lisp. Nếu biết khai thác tốt, bạn có thể tăng năng suất vẽ và thiết kế với Acad lên gấp nhiều lần (theo ssg là không dưới 3 lần).

Đừng ngại ngần, hãy nêu càng nhiều càng tốt yêu cầu của bạn, CadViet Utility sẵn sàng đáp ứng!

Mình đang tập tành lisp , nhưng có 1 yêu cầu này , hy vọng các bạn có thể giải quyết được .

Mình là dân cơ khí , sau khi mình vẽ xong , đến giai đoạn lập bảng kê , mình cứ phải leader từng món 1 . Có những bản vẽ lắp , 7 - 8 chục chi tiết viết bảng kê mệt nghỉ . Mình muốn là sau khi mình trỏ leader vào chi tiết , chương trình chỉ hỏi mình tên chi tiết , số lượng , vật liệu , ghi chú và vị trí đặt số thứ tự trên bản vẽ , còn lại nó tự động đánh số và tự lên bảng kê . Thêm nữa , nếu có thể thì chương trình cho phép chỉnh sửa kiểu insert ( trong trường hợp bạn đánh số thứ tự xong hết rồi , tự nhiên sếp lên hỏi "cái này là cái gì ?" , thế là bạn phải thêm chi tiết mang số to nhất , mà yêu cầu là số đánh phải có thứ tự theo chiều kim đồng hồ .) , và kiểu delete ( trong trường hợp như trên nhưng ngược lại ) .

Thật sự mình rất ghét lập bảng kê .

Mình chân thành cảm ơn và đang cố gắng để có thể chung tay xây dựng với mọi người .

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Mình đang tập tành lisp , nhưng có 1 yêu cầu này , hy vọng các bạn có thể giải quyết được .

Mình là dân cơ khí , sau khi mình vẽ xong , đến giai đoạn lập bảng kê , mình cứ phải leader từng món 1 . Có những bản vẽ lắp , 7 - 8 chục chi tiết viết bảng kê mệt nghỉ . Mình muốn là sau khi mình trỏ leader vào chi tiết , chương trình chỉ hỏi mình tên chi tiết , số lượng , vật liệu , ghi chú và vị trí đặt số thứ tự trên bản vẽ , còn lại nó tự động đánh số và tự lên bảng kê . Thêm nữa , nếu có thể thì chương trình cho phép chỉnh sửa kiểu insert ( trong trường hợp bạn đánh số thứ tự xong hết rồi , tự nhiên sếp lên hỏi "cái này là cái gì ?" , thế là bạn phải thêm chi tiết mang số to nhất , mà yêu cầu là số đánh phải có thứ tự theo chiều kim đồng hồ .) , và kiểu delete ( trong trường hợp như trên nhưng ngược lại ) .

Thật sự mình rất ghét lập bảng kê .

Mình chân thành cảm ơn và đang cố gắng để có thể chung tay xây dựng với mọi người .

Mình sẽ đáp ứng yêu cầu của bạn. Nhưng trước tiên, bạn phải cho biết quy cách của bảng kê. Tốt nhất, bạn upload một file *.dwg có đánh số và bảng kê chuẩn nhất theo ý bạn làm ví dụ.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Đây là file mình thiết kế khi còn học năm 3 . Về tương lai chắc chương trình bạn viết có thể có chức năng modify bảng kê để nó có thể ứng dụng rộng rãi cho nhiều ngành khác nhau .

http://www.cadviet.com/upfiles/Cantruc.dwg

 

Chưong trình đánh số chi tiết và lập bảng kê trong các bản vẽ lắp cơ khí:

 

http://www.cadviet.com/upfiles/BangKe.zip

 

Giải nén, đọc và làm theo Huongdan.txt. Có một số vấn đề cần bàn thêm. Các bạn dùng thử và cho ý kiến.

 

ssg

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cảm ơn bạn , chương trình rất tuyệt . Nhưng ở trong defun end_bk , bạn setvar "osmode" về oldos ( đúng ra phải về oldOs giống như bạn đã đặt từ đầu ) nên nó xóa đi tất cả những thuộc tính đã đặt trong osnap .

Mình cũng có thắc mắc là tại sao khi mình sửa oldOs ( ở defun Begin_BK ) về oldos cho giống phần end_BK nhưng nó không trả về giá trị osnap ban đầu , mà phải sửa ở phần end_BK thì nó mới trả lại .

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Cảm ơn bạn , chương trình rất tuyệt . Nhưng ở trong defun end_bk , bạn setvar "osmode" về oldos ( đúng ra phải về oldOs giống như bạn đã đặt từ đầu ) nên nó xóa đi tất cả những thuộc tính đã đặt trong osnap .

Mình cũng có thắc mắc là tại sao khi mình sửa oldOs ( ở defun Begin_BK ) về oldos cho giống phần end_BK nhưng nó không trả về giá trị osnap ban đầu , mà phải sửa ở phần end_BK thì nó mới trả lại .

Biến lisp không phân biệt chữ hoa chữ thường, mình dùng chữ hoa chỉ để dễ đọc mà thôi. Biến osmode không trả lại nguyên trạng có lẽ do bạn thoát ngang chương trình bằng ESC (hoặc vì lý do gì đó mà nó không hoàn thành lệnh).

Chương trình mình viết trên là dạng sơ khai, trước hết là theo yêu cầu và có thể phù hợp với bạn, nhưng chưa chắc hợp với người khác. Mục tiêu của mình là sẽ phát triển để chương trình mang tính tổng quát hơn, phù hợp hơn với nhiều người.

Có hai vấn đề cần đặt ra:

1) Khung tên và bảng kê mối người vẽ 1 kiểu, làm sao có sự thống nhất? Mình đưa ví dụ dưới đây đã thấy 3 mẫu khác nhau rồi:

http://www.cadviet.com/upfiles/KhungTen.zip

Chọn mẫu nào để vẽ?

2) Vấn đề liên quan đến tỷ lệ bản vẽ cũng khác nhau. Cách của bạn làm là vẽ đúng kích thước như trên giấy khi in, khi ghi kích thước đặt dimscale tăng lên tương ứng. Còn cách làm đã được thống nhất trong Cty mình là luôn luôn vẽ đúng kích thước thật của chi tiết. Khi in, sẽ chọn Plot Scale phù hợp. Với cách này, khung tên khi vẽ cũng sẽ được scale lên tỷ lệ tương ứng.

Tạm thời không bàn đến cái hay cái dở của mỗi cách, nhưng phải thừa nhận một thực tế là mỗi người, mỗi Cty có cách làm khác nhau, và không phải ai cũng có quyền thay đổi những cách làm đã trở thành quy định bắt buộc của Cty.

Chương trình lisp phải lấy các điểm chuẩn để ghi text và vẽ line, làm sao để tuỳ biến hợp với cách dùng của từng người? Mình đang định dùng TextSize hiện hành của người dùng để làm chuẩn, không biết có hợp lý không?

Mong các bạn góp ý thêm để mình hoàn thiện chương trình. Khi đã hoàn chỉnh, nó sẽ là một mục của chương trình tổng hợp, hỗ trợ thiết kế cơ khí mà mình đang thực hiện.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Có thể trước khi tiến hành chương trình trên thì bạn tạo cho người dùng 1 loạt câu hỏi với những nội dung sau

_ Chiều cao mỗi dòng

_ Số cột

_ Chiều rộng cột 1

_ Thông tin trong cột 1

_ Chiều rộng cột 2

_ Thông tin trong cột 2

_ ...

Sau đó save các tùy chọn này lại để dùng lần sau . Mình nghĩ nó sẽ thích hợp được với nhiều người .

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Có thể trước khi tiến hành chương trình trên thì bạn tạo cho người dùng 1 loạt câu hỏi với những nội dung sau

_ Chiều cao mỗi dòng

_ Số cột

_ Chiều rộng cột 1

_ Thông tin trong cột 1

_ Chiều rộng cột 2

_ Thông tin trong cột 2

_ ...

Sau đó save các tùy chọn này lại để dùng lần sau . Mình nghĩ nó sẽ thích hợp được với nhiều người .

That's good idea. Thank you!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
That's good idea. Thank you!

Dự án này có vẻ đang tiến triển tốt đấy nhỉ. Vì chương trình chưa hoàn thiện nên cũng ko biết các chức năng vẽ hình học sẽ như thế nào. Liệu phần này có thống kê đc tất cả các chi tiết cấu tạo của một ngôi nhà ko (vẽ các loại móng, các mặt cắt móng, cột lanh tô, ô văng, xà gồ, các loại thép ...) Hơi tham vọng nhỉ. Tôi ko phải là lập trình chuyên nghiệp về lisp nên chỉ biết sơ sơ về nó để đôi khi chỉnh sửa một lisp gốc nào đó theo nhu cầu của mình, cũng ko phải dân thiết kế chuyên nghiệp nên ko sử dụng thường xuyên. Thật tiếc là ko đóng góp đc cho dự án này. Mong những người có tài và tâm huyết hãy chung sức chia sẻ để xây dựng một CVU tiện ích cho người sử dụng cad và cho con cháu mình sau này đỡ phải mày mò như cha ông vì những điều đơn giản. Chuyên tâm làm cho công trình đất Việt ngày càng cao và đẹp.

 

HÃY ĐÓNG GÓP Ý TƯỞNG NẾU BẠN KO LÀM ĐC NHIỀU HƠN THẾ

(TÔI MUỐN SAU NÀY NGƯỜI SỬ DỤNG ĐIỆN KO CẦN PHẢI KÉO ĐƯỜNG DÂY NỮA) :bigsmile:

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay
Đăng nhập để thực hiện theo  

×