2009-04-22 31 views
9

Các ứng dụng CAD (tê giác, Autocad) của ngày hôm nay được viết bằng cách nào và chúng được tổ chức nội bộ như thế nào?Ứng dụng CAD được viết là gì và chúng được sắp xếp như thế nào?

Tôi đã đưa ra ví dụ, Autocad và Rhino, mặc dù tôi rất thích nghe các ví dụ khác. Tôi đặc biệt quan tâm đến việc biết phụ trợ của họ được viết bằng ngôn ngữ gì (multilanguage?) Và cách nó được tổ chức, và làm thế nào để họ xử lý giao diện người dùng (GUI) của họ trong thời gian thực? Họ có sử dụng các cửa sổ bản địa của API hay một số thư viện của riêng họ, vì tôi tưởng tượng, tốt nhất có thể, các giải pháp nguồn mở trên thị trường hiện nay sẽ không cắt nó. Tôi có thể sai ...

Vì hầu hết các bạn đã sử dụng chúng đều biết, chúng xử lý trong số những thứ khác tương đối phức tạp trong các hoạt động quay trong thời gian thực (che không phải là thú vị với tôi). Gần đây tôi đã thực hiện một số thí nghiệm với một số gói và một số mô hình lớn hơn cho thấy có sự khác biệt đáng kể về tốc độ, ví dụ, xoay vòng được lập trình (các mô hình tàu lớn) trong số chúng (mà tôi sẽ không đặt tên) . Vì vậy, tôi tự hỏi về nội bộ của họ ...

Ngoài ra, nếu ai đó biết về một số cuốn sách về chủ đề này, tôi muốn được nghe về nó.

Trả lời

7

Là công ty của tôi là nhà phát triển đã đăng ký cho AutoCAD, tôi biết chắc chắn rằng nó được viết bằng C++. Nó cho thấy một giao diện COM, cũng như một .Net wrapper. Ngoài ra, nó hiển thị đồ họa được thành phần và có thể được thay thế. Cách quay trở lại lịch sử của nó được sử dụng là nền tảng chéo. Tuy nhiên nó chỉ là Windows trong khoảng 10 năm và bây giờ tận dụng mọi tính năng Windows mà tôi đã thấy. Bạn có thể quan tâm đến số Open Design Alliance.

4

Dự án mã nguồn mở BRL-CAD có thể khiến bạn quan tâm.

5

AutoLISP là một hương vị của lisp đã được sử dụng trong nhiều năm để lập trình AutoCAD. Rất mạnh mẽ, hoàn toàn không thân thiện. AutoCAD (và hầu hết các ngành dọc) đã tích hợp sẵn VBA trong khoảng 10 năm. Loại mạnh mẽ, rất thân thiện. Các dự án VBA được lưu trữ trong một tệp riêng biệt được nạp bởi một cơ chế bên trong chương trình máy chủ lưu trữ. Phiên bản mới nhất (hiện tại 2010) không còn bao gồm VBA theo mặc định. Bạn phải cài đặt trình kích hoạt VBA riêng. Điều này là để cho chúng tôi thông báo rằng VBA (VB6 cho rằng vấn đề) sẽ tại một số điểm là một điều của quá khứ. Nền tảng .NET hiện là lựa chọn ưu tiên. VB.NET, C# .NET, C++ thường được sử dụng. Một số đã thử nghiệm với các ngôn ngữ .NET khác như F # và IronPython.

+0

Thú vị. Theo ý kiến ​​của bạn, điều gì sẽ là tùy chọn kịch bản trong tương lai trong học viện? Như bạn đã nói, có lẽ họ sẽ rời khỏi vba, bạn có nghĩ điều tương tự cũng sẽ xảy ra với lisp không? Hiện tại có hai phiên bản "tự động" và "trực quan" ... – Rook

+0

Tôi đã nghe phản hồi của Autodesk đối với câu hỏi đó nhiều lần: "Có một số lượng lớn mã di sản cũ mà khách hàng của chúng tôi phụ thuộc." Tôi đoán, nhưng tôi không nghĩ rằng họ sẽ từ bỏ lisp trong nhiều năm. Theo như VBA đi xa, tôi không phải điều đó sẽ xảy ra trong nhiều năm vì cùng một lý do. Ai biết được, có thể VSTA là một lựa chọn trong tương lai. (Phiên bản .NET của VBA) Hiện tại, nó có vẻ là .NET với một hướng nghiêng về phía C#. – mohnston

+1

AutoCAD 2010 shippied * mà không cần * VBA (bạn có thể tải xuống riêng). VSTA là tương lai cho các add-in CAD. Họ thay đổi định dạng nhị phân sau mỗi 3 năm để bạn cần phải biên dịch lại với (các) phiên bản đích của mình. –

7

Phần mềm CAD cơ khí 3D như CATIAv5, Pro/Engineer và Solidworks chủ yếu được viết bằng C++, đôi khi có giao diện COM mỏng để xuất bản API cơ bản cho khách hàng.

Vì các ứng dụng này thực sự rất lớn và đang được phát triển bởi nhiều nhóm, chúng dựa trên nguyên tắc thiết kế C++ quy mô lớn, chẳng hạn như các mẫu Giao diện/Thực hiện để cách ly các mô-đun khỏi các thay đổi.

Chúng bao gồm nhiều hệ thống con như:

  • một khung cơ sở để cung cấp trừu tượng từ hệ điều hành underlaying
  • một khuôn khổ cho GUI, hộp thoại và tương tác người dùng
  • một renderer 3D (chủ yếu sử dụng OpenGL với một số lớp biểu đồ cảnh tùy chỉnh)
  • hạt nhân hình học, với mô-đun tessellation (để hình có thể được hiển thị trong trình kết xuất)
  • trình mô hình tham số b uẩn khi hạt nhân hình học
  • và nhiều nhà xây dựng mô hình cụ thể nhắm vào các miền khác nhau (Cơ khí, Soạn thảo, Mô phỏng, ...)
Các vấn đề liên quan