DIỄN ĐÀN SINH VIÊN NGÀNH TÀU THỦY VIỆT NAM
DIỄN ĐÀN SINH VIÊN NGÀNH TÀU THỦY VIỆT NAM
Diễn Đàn http://tauthuy.hot4um.com là nơi trao đổi kinh nghiệm và chia sẻ tài liệu, chính vì vậy yêu cầu các thành viên thực hiện theo đúng nội quy của diễn đàn. BQT Diễn Đàn Xin Trân Thành Cảm Ơn!

Đăng Nhập

Quên mật khẩu



Latest topics
» LẤY DẤU CƠ CẤU KHI THI CÔNG 1 BLOCK TRONG ĐÓNG TÀU NHƯ THẾ NÀO ?
Wed Sep 20, 2017 8:06 pm by cuonggts

» Tuyển 08 thợ mộc làm dự án đóng tàu tại Nhà bè - HCM
Wed Sep 13, 2017 11:19 am by ariesnha

» VARD signed one new contract with client from North Australia
Tue Sep 12, 2017 8:51 pm by Admin

» CÁCH TÍNH TRỌNG LƯỢNG VỎ TÀU TRONG GIAI ĐOẠN THIẾT KẾ
Tue Aug 29, 2017 7:57 am by Admin

» Phần mềm tự động vẽ đồ thị Bonjean
Tue Aug 08, 2017 5:52 pm by dailoi223

» Thử làm nước sốt ăn bánh tráng trộn ngon đậm đà ai cũng mê
Wed Jul 19, 2017 2:49 pm by ledong1357

» Phần mềm ứng dụng NUPAS - CADMATIC
Sat Jul 15, 2017 5:45 pm by ngocnu__tauthuy

» Làm bánh tráng trộn tại nhà ngon lành khó cưỡng
Thu Jul 13, 2017 4:41 pm by ledong1357

» Phần mềm hỗ trợ thiết kế tính toán tính năng tàu cá
Wed Jul 12, 2017 10:13 pm by Admin

» Săn lùng địa chỉ ăn bánh tráng trộn ngon tại Hà Nội
Wed Jul 12, 2017 3:45 pm by ledong1357

» Từ điển tiếng anh chuyên nghành
Wed Jul 12, 2017 2:43 pm by dungdv1986@gmail.com

» TUYỂN KỸ SƯ ĐÓNG TÀU ĐI LÀM VIỆC TẠI NHẬT BẢN.
Wed Jul 05, 2017 11:37 pm by mạnh dũng

» Bạn cần lưu tầm tới vấn đề vệ sinh an toàn của món bánh tráng trộn ngày nay
Tue Jul 04, 2017 10:36 am by ledong1357

» Răng bị sâu có nên đi trám không? Tư vấn nha khoa
Wed May 31, 2017 10:44 am by ledong1357

» Niềng răng sứ có giá bao nhiêu tiền trên thị trường hiện nay?
Tue May 30, 2017 3:14 pm by ledong1357

Thống Kê
Hiện có 2 người đang truy cập Diễn Đàn, gồm: 1 Thành viên, 0 Thành viên ẩn danh và 1 Khách viếng thăm

lhvinh12345

Số người truy cập cùng lúc nhiều nhất là 12 người, vào ngày Thu Sep 19, 2013 1:20 am
Statistics
Diễn Đàn hiện có 2990 thành viên
Chúng ta cùng chào mừng thành viên mới đăng ký: thantuananh1997vn

Tổng số bài viết đã gửi vào diễn đàn là 1015 in 446 subjects

You are not connected. Please login or register

DIỄN ĐÀN SINH VIÊN NGÀNH TÀU THỦY VIỆT NAM » CHƯƠNG TRÌNH-PHẦN MỀM ỨNG DỤNG TRONG LĨNH VỰC TÀU THỦY » PHÁT TRIỂN PHẦN MỀM HỖ TRỢ CHUYÊN NGHÀNH » Giới thiệu ngôn ngữ phát triển phần mềm trên AutoCAD

Giới thiệu ngôn ngữ phát triển phần mềm trên AutoCAD

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

Admin

avatar
Admin
Như các bạn đã biết, việc phát triển một phần mềm đã vô cũng phức tạp đặc biệt trong các ngành kĩ thuật như xây dựng, cơ khí, đặc biệt hơn là ngành đóng tàu chúng ta luôn phải làm việc với các mặt phức tạp như mặt NURBS, B-pline.....việc lập trình đã phức tạp huống chi còn điểu khiển chúng. Để tạo ra các đường Spline, mặt NURBS ..... đòi hỏi sử dụng các công thức toán học. Như vây để giảm bớt việc tạo các mặt, đường chúng ta sử dụng các ngôn ngữ được Autodesk phát triển và đưa vào phần mềm AutoCAD như Vuisual LISP, VBA(Visual Basic for Applicaytion), ARX, Reactor .......ngày nay được phát triển lên AutoCAD.net. Như vậy sử dụng các lệnh tạo mặt, tạo đường và tận dụng các ngôn ngữ ở trên chúng ta có thể hoàn toàn giải quyết được các công việc thường lặp đi lặp lại hàng ngày. Ví dụ như: Tính diện tích của các đường sườn tại các đường nước khác nhau chúng ta đòi hỏi phải qua nhiều công việc vậy tại sao không sử dụng 1 click cho ra kết quả ngay và giảm được thời gian tính toán trên AutoCAD. Ngoài ra, còn giải quyết được các công việc như tính toán các thông số tính nổi trực tiếp ngay trên AutoCAD không cần phải thông qua các bảng tính toán phức tạp và cho phép vẽ các đồ thị trực tiếp ngay trên AutoCaD. Việc tận dụng lại các lệnh của AutoCAD đã giảm bớt quá trình lập trình Ví dụ như: phần mềm ShipContructor được phát triển dựa trên công nghệ ARx OBjectARX.........hoàn toàn giải quyết được bài toán thiết kế công nghệ ngay trên phần mềm AutoCAD. Như vậy nhận thấy tầm quan trọng của các vấn đề tôi đã nêu trên hôm nay tôi sẽ viết bài giới thiệu về các ngôn ngữ được AutoDESK phát triển cho AutoCAD cụ thể như sau:

Ngôn ngữ AutoLISP: AutoLisp được phát triển từ XLISP là ngôn ngữ lập trình trên môi trường AutoCAD và được công bố phiên bản đầu tiên 2.18 vào tháng 01 năm 1986. Cùng với sự phát triển của AutoCAD các phiên bản của Autolisp ngày càng được hoàn thiện với nhiều tính năng mới, có thể kể đến một vài phiên bản tiêu biểu như sau:
- Chính thức giới thiệu phiên bản 2.5 tích hợp vào AutoCAD R7 với một số tính tăng cơ bản về các tương tác với đối tượng trong bản vẽ
- Phiên bản 2.6 tích hợp vào AutoCAD R7 với chức năng 3D và một số hàm mới getcorner, getkword, và initget.
- Phiên bản tích hợp vào AutoCAD R12 giới thiệu một số hàm GUI (Graphic User Interface) và ngôn ngữ điều khiển hộp thoại DCL (Dialog Control Language).
- Phiên bản Visual LISP™ giới thiệu cùng với AutoCAD R14 là một môi trường phát triển Autolisp độc lập, trực quan với sự hỗ trợ của các công cụ gỡ rối.
- Visual LISP™ được chính thức tích hợp vào AutoCAD 2000 và từ đó đến nay được bổ sung nhiều tích năng mới.
Nhược điểm:
- Hình thức bên ngoài không hấp dẫn.
- Cú pháp khó hiểu.
- Hạn chế, không có trình biên dịch.
- Ngôn ngữ trung gian nên thực thi chậm.
- Hầu như không thể tương tác với hệ thống.
- Việc phát triển giao diện chương trình khó khăn đòi hỏi thông qua ngôn ngữ DCL hoặc VBA
- Không cho phép đóng gói chương trình ở dạng exe mà phải copy đoạn lệnh vào file autocad.lsp hoặc VBA, Lognet.....
Ưu điểm :
- Cho phép thực thi chương trình ngay trên AutoCAD
- Là ngôn ngữ lập trình bậc cao cho phép truy nhập sâu vào cơ sở dữ liệu của AutoCAD. sử dụng các đối tượng và điều khiển đối tượng
- Làm việc rất tốt và dễ dàng với điểm và các yếu tố hình học.
- Rất mềm dẻo, không khắt khe.
- Không cần trình dịch - lập trình và thực hiện lệnh.
- Chạy được trên tất các các hệ điều hành với cùng 1 file Lisp.
- Quản lý đối tượng với List - một kiểu dữ liệu với nhiều ưu điểm vượt trội trong quản lý tọa độ điểm.
- Mã nguồn mở và cộng đồng phát triển Autolisp rất rộng lớn.
Programing pick up point on Area of Draw AutoCAD(Author: Bùi Công Lộc)

Code:
(defun c:l2d ()
 
     (setq tenk (getstring "Nhap ten Suon ; Duong Nuoc ; Cat Doc : "))
   (setq rong t)
   (setq tdx (list)
         tdy (list))
             
      (while rong
       
         (progn
            (setq p1 (getpoint "\nChon mot diem:"))
               (if p1
                  (progn
                     (setq tdx (append (list (rtos (car p1) 2 2)) tdx )
)
                    (setq tdy (append (list (rtos (cadr p1) 2 2)) tdy )
)
                   
(setq rong t)
)
(setq rong nil)
)
)
)
 
(setq tdx (reverse tdx)
      tdy (reverse tdy))
  (princ tenk)
  (princ "\n")
(princ "Toa do X")
  (princ "\n")
 
  (princ tdx)
  (princ "\n")
 
  (princ "Toa do Y")
 
  (princ "\n")
  (princ tdy)
 
  (princ "\n")
  (alert "Chuong trinh duoc viet boi  - Bui Cong Loc ")
)


AutoCAD.net

Từ AutoCAD 2010, VBA không còn bao gồm trong gói cài đặt AutoCAD. Nếu bạn muốn tiếp tục sử dụng nó cho 2010 bạn sẽ cần phải lên trang chủ của AutoCAD tải về và cài đặt VBA Enabler. (Có thể) trong tương lai AutoCAD thậm chí sẽ không hỗ trợ VBA ?! ( do Microsoft ngưng cung cấp)

AutoCAD cung cấp nhiều cách khác nhau để truy xuất DataBase thông qua các API khác nhau (API viết tắt của Application Programming Interfaces : giao diện lập trình ứng dụng).
VD : AutoLISP và ARX (C++ interface)
Trong khi đó AutoCAD Visual Basic for Applications gọi tắt là VBA giao tiếp với AutoCAD thông qua giao diện ActiveX Automation.

Microsoft giới thiệu Môi trường Net (.NET Framework) cho phép bạn có thể sử dụng bất kỳ ngôn ngữ lập trình để tạo ra một ứng dụng .

Thông qua .Net, các AutoCAD .NET API cho phép bạn thao tác với giao diện Acad và các tập tin.
AutoCAD .NET API gồm các tập tin DLL khác nhau chứa một loạt các lớp(classes), cấu trúc(structures), phương thức(methods) và các sự kiện( events) cung cấp truy cập vào các đối tượng trong một file bản vẽ hoặc các ứng dụng AutoCAD.
Các DLL này bao gồm trong gói cài đặt AutoCAD, và mặc nhiên đuợc tự động cài đặt cùng với AutoCAD.
Mỗi tập tin DLL chứa các thành phần của các thư viện khác nhau.
Có hai DLL chính là :
- AcDbMgd.dll : cung cấp các thư viện (hàm) để làm việc với các đối tuợng trong bản vẽ.
- AcMgd.dll : cung cấp các thư viện (hàm) để làm việc với các ứng dụng AutoCAD.
Truớc khi sử dụng các AutoCAD .NET API, chúng ta phải tham chiếu (Add reference) các DLL này vào project

Thuận lợi của AutoCAD .NET API là bạn có thể sử dụng bất kì thư viện nào viết trên Môi trường Net.
Code tương tự tôi viết trên VB.net dựa trên công nghệ(COM) AutoCAD .net
Code:
Public Class Class1
 
    <CommandMethod("1")> _
    Public Sub HelloWorld()
        Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
        ed.WriteMessage("\nChào mừng đến với http://tauthuy.hot4um.com")
    End Sub

 
    <CommandMethod("getPoint")> _
    Public Sub Asdkcmd1()
        Dim prPointOptions As PromptPointOptions = New PromptPointOptions("\nChọn điểm :")
        Dim prPointRes As PromptPointResult
        Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
        prPointRes = ed.GetPoint(prPointOptions)
        If prPointRes.Status <> PromptStatus.OK Then
            Return
        End If

        ed.WriteMessage("\nTọa độ diểm : " &; prPointRes.Value.ToString)
    End Sub

 
    <CommandMethod("getDistance")> _
    Public Sub getdistance()
        Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
        Dim prDistOptions As PromptDistanceOptions = New PromptDistanceOptions("\nSelect first point:")
        Dim prDistRes As PromptDoubleResult
        prDistRes = ed.GetDistance(prDistOptions)
        If prDistRes.Status <> PromptStatus.OK Then
            Return
        End If

        ed.WriteMessage("\nKhoảng cách là : " &; prDistRes.Value.ToString)
    End Sub

End Class
Ngoài ra còn Ngôn ngữ VBA: , C+ ../..

- Ngoài ra còn việc xây dựng các menu ngữ cảnh ICON chương trình được hỗ trợ với các hàm khác nhau các bạn có thể tham khảo code tạo menu chương trinh trong AutoCAD như sau:

Code:
***POP2
**EDIT
ID_MnEdit      [&Edit]
ID_U          [&Undo   Ctrl+Z]_u
ID_Redo        [&Redo   Ctrl+Y]^C^C_mredo 1
              [--]
ID_Cutclip    [Cu&t   Ctrl+X]^C^C_cutclip
ID_Copyclip    [&Copy   Ctrl+C]^C^C_copyclip
ID_Copybase    [Copy with &Base Point   Ctrl+Shift+C]^C^C_copybase
ID_Copylink    [Copy &Link]^C^C_copylink
ID_Pasteclip  [&Paste   Ctrl+V]^C^C_pasteclip
ID_Pastebloc  [Paste as Bloc&k   Ctrl+Shift+V]^C^C_pasteblock
ID_Pastehlnk  [Paste as &Hyperlink]^C^C_pasteashyperlink
ID_Pasteorig  [Paste to Original Coor&dinates]^C^C_pasteorig
ID_Pastesp    [Paste &Special...]^C^C_pastespec
              [--]
ID_Erase      [Cle&ar   Del]^C^C_erase
ID_SelAll      [Se&lect All   Ctrl+A]^C^C_ai_selall
              [--]
ID_Links      [&OLE Links...]^C^C_olelinks
              [--]
ID_TextFind    [&Find...]^C^C_find

***POP3
**VIEW
ID_MnView      [&View]
ID_Redrawall  [&Redraw]'_redrawall
ID_Regen      [Re&gen]^C^C_regen
ID_Regenall    [Regen &All]^C^C_regenall
              [--]
ID_MnZoom      [->&Zoom]
ID_ZoomRealt    [&Realtime]'_zoom ;
                [--]
ID_ZoomPrevi    [&Previous]'_zoom _p
ID_ZoomWindo    [&Window]'_zoom _w
ID_ZoomDynam    [&Dynamic]'_zoom _d
ID_ZoomScale    [&Scale]'_zoom _s
ID_ZoomCente    [&Center]'_zoom _c
ID_ZoomObjec    [O&bject]'_zoom _o
                [--]
ID_ZoomIn        [&In]'_zoom 2x
ID_ZoomOut      [&Out]'_zoom .5x
                [--]
ID_ZoomAll      [&All]'_zoom _all
ID_ZoomExten    [<-&Extents]'_zoom _e
ID_MnPan      [->&Pan]
ID_Pan          [Real&time]'_pan
ID_PanPick      [&Point]'_-pan
                [--]
ID_PanLeft      [&Left]^P'_-pan (trans (list (* -0.2 (getvar "viewsize")) 0) 0 1) ;^P
ID_PanRight      [&Right]^P'_-pan (trans (list (* 0.2 (getvar "viewsize")) 0) 0 1) ;^P
ID_PanUp        [&Up]^P'_-pan (trans (list 0 (* 0.2 (getvar "viewsize"))) 0 1) ;^P
ID_PanDown      [<-&Down]^P'_-pan (trans (list 0 (* -0.2 (getvar "viewsize"))) 0 1) ;^P
ID_Dsviewer    [Aerial Vie&w]'_dsviewer
              [--]
ID_CleanScreen [$(if,$(and,$(getvar,CleanScreenState),1),!.)&Clean Screen   Ctrl+0]$M=$(if,$(and,$(getvar,CleanScreenState),1),^C^C_CleanScreenOFF,^C^C_CleanScreenON)
              [--]
ID_MnTiledVi  [->&Viewports]
ID_Ai_tiledv    [&Named Viewports...]^C^C_+vports 1
                [--]
ID_VportsSav    [N&ew Viewports...]^C^C_+vports 0
ID_VportsSin    [&1 Viewport]^C^C$M=$(if,$(eq,$(getvar,tilemode),1),^C^C_-vports _si,^C^C_-vports)
ID_Vports2      [&2 Viewports]^C^C_-vports _2
ID_Vports3      [&3 Viewports]^C^C_-vports _3
ID_Vports4      [&4 Viewports]^C^C_-vports _4
ID_VportsRes    [$(if,$(eq,$(getvar,tilemode),1),~)&Polygonal Viewport]^C^C_-vports _p
ID_VportsDel    [$(if,$(eq,$(getvar,tilemode),1),~)&Object]^C^C_-vports _o
                [--]
ID_VportsJoi    [<-$(if,$(eq,$(getvar,tilemode),0),~)&Join]^C^C_-vports _j
ID_Ddview      [&Named Views...]^C^C_view
ID_MnViewpoi  [->$(if,$(and,$(eq,$(getvar,tilemode),0),$(eq,$(getvar,cvport),1)),~,)&3D Views]
ID_Ddvpoint      [V&iewpoint Presets...]^C^C_ddvpoint
ID_VpointTri    [&Viewpoint]^C^C_vpoint ;
ID_MnPlanView    [->&Plan View]
ID_PlanCurre      [&Current UCS]^C^C_plan ;
ID_PlanWorld      [&World UCS]^C^C_plan _w
ID_PlanUCS        [<-&Named UCS]^C^C_plan _u
                [--]
ID_VpointTop    [&Top]^C^C_-view _top
ID_VpointBot    [&Bottom]^C^C_-view _bottom
ID_VpointLef    [&Left]^C^C_-view _left
ID_VpointRig    [&Right]^C^C_-view _right
ID_VpointFro    [&Front]^C^C_-view _front
ID_VpointBac    [Bac&k ]^C^C_-view _back
                [--]
ID_VpointSW      [&SW Isometric]^C^C_-view _swiso
ID_VpointSE      [S&E Isometric]^C^C_-view _seiso
ID_VpointNE      [&NE Isometric]^C^C_-view _neiso
ID_VpointNW      [<-N&W Isometric]^C^C_-view _nwiso
ID_3dorbit    [$(if,$(and,$(eq,$(getvar,tilemode),0),$(eq,$(getvar,cvport),1)),~,)3D Or&bit]'_3dorbit
              [--]
ID_Hide        [&Hide]^C^C_hide
ID_MnPersShad  [->$(if,$(and,$(eq,$(getvar,tilemode),0),$(eq,$(getvar,cvport),1)),~,)&Shade]
ID_2doptim      [&2D Wireframe]$M=$(if,$(and,$(eq,$(getvar,tilemode),0),$(eq,$(getvar,cvport),1)),^C^C_shademode,^C^C_shademode _2)
ID_Wireframe    [&3D Wireframe]$M=$(if,$(and,$(eq,$(getvar,tilemode),0),$(eq,$(getvar,cvport),1)),^C^C_shademode,^C^C_shademode _3)
ID_Hidden        [&Hidden]$M=$(if,$(and,$(eq,$(getvar,tilemode),0),$(eq,$(getvar,cvport),1)),^C^C_shademode,^C^C_shademode _h)
ID_Flat          [&Flat Shaded]$M=$(if,$(and,$(eq,$(getvar,tilemode),0),$(eq,$(getvar,cvport),1)),^C^C_shademode,^C^C_shademode _f)
ID_Gouraud      [&Gouraud Shaded]$M=$(if,$(and,$(eq,$(getvar,tilemode),0),$(eq,$(getvar,cvport),1)),^C^C_shademode,^C^C_shademode _g)
ID_FlatEdges    [Fla&t Shaded, Edges On]$M=$(if,$(and,$(eq,$(getvar,tilemode),0),$(eq,$(getvar,cvport),1)),^C^C_shademode,^C^C_shademode _l)
ID_GourEdges    [<-Gouraud &Shaded, Edges On]$M=$(if,$(and,$(eq,$(getvar,tilemode),0),$(eq,$(getvar,cvport),1)),^C^C_shademode,^C^C_shademode _o)
ID_MnRender    [->$(if,$(and,$(eq,$(getvar,tilemode),0),$(eq,$(getvar,cvport),1)),~,)R&ender]
ID_Render        [&Render...]^C^C_render
                [--]
ID_Scene        [&Scene...]^C^C_scene
ID_Light        [&Light...]^C^C_light
ID_Rmat          [&Materials...]^C^C_rmat
ID_Matlib        [Materials Librar&y...]^C^C_matlib
ID_Setuv        [M&apping...]^C^C_setuv
                [--]
ID_Backgroun    [&Background...]^C^C_background
ID_Fog          [&Fog...]^C^C_fog
ID_Lsnew        [Landscape &New...]^C^C_lsnew
ID_Lsedit        [Landscape &Edit...]^C^C_lsedit
ID_Lslib        [Lands&cape Library...]^C^C_lslib
                [--]
ID_Rpref        [&Preferences...]^C^C_rpref
ID_Stats        [<-S&tatistics...]^C^C_stats

Các sản phầm đơn giản nhất được viết bởi ngôn ngữ AutoLISP

- Tính toán trọng lượng thép tấm
[You must be registered and logged in to see this link.]



===========================================================
http://tauthuy.hot4um.com

thanhbkdn


Thành Viên Mới
Thành Viên Mới
trên đây bạn chỉ mới giới thiệu thui đúng không, vậy muốn học nó thì phải làm sao vậy bạn ?
thanks !

Admin

avatar
Admin
Cái mình chỉ muốn nêu các thế mạnh của từng ngôn ngữ để người dùng lựa chọn. Nếu bạn muốn học nó không còn con đường nào khác là phải mua tài liệu về tu luyện thôi, hoặc cách học nhanh nhất là tự thiết kế cho mình một sản phầm phục vụ cho quá trình học tập thôi



===========================================================
http://tauthuy.hot4um.com

thanhbkdn


Thành Viên Mới
Thành Viên Mới
cảm ơn hi

Sponsored content


Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Permissions in this forum:
Bạn không có quyền trả lời bài viết