DIỄN ĐÀN SINH VIÊN NGÀNH TÀU THỦY VIỆT NAM


Join the forum, it's quick and easy

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
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.
DIỄN ĐÀN SINH VIÊN NGÀNH TÀU THỦY VIỆT NAM
Diễn Đàn https://tauthuy.forumvi.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
» em đang làm đồ án thiết kế mọi người ai có bản vẽ tàu DV-03-BNN DV-04-BNN cho em xin đc k ạ
Giới thiệu ngôn ngữ phát triển phần mềm trên AutoCAD EmptyMon Oct 04, 2021 8:10 am by vandung33333

» các anh cho em xin bản vẽ autocad tàu cá tàu đánh cá lưới rê BNN 02 về phần hệ động lực
Giới thiệu ngôn ngữ phát triển phần mềm trên AutoCAD EmptySun Sep 19, 2021 12:01 am by Admin

» Thiết kế tàu chuyên dụng
Giới thiệu ngôn ngữ phát triển phần mềm trên AutoCAD EmptyThu Apr 22, 2021 9:39 am by VinhVT17

» anh chị nào có bản vẽ tàu fu lịch vỏ nhôm 15m không ạ. cho em xin với ạ
Giới thiệu ngôn ngữ phát triển phần mềm trên AutoCAD EmptySun Apr 11, 2021 1:51 pm by minhsang

» STRENGTH+ANALYSIS+OF+HULL+STRUCTURE
Giới thiệu ngôn ngữ phát triển phần mềm trên AutoCAD EmptySun Mar 21, 2021 1:38 pm by Once

» Xin hồ sơ tàu dầu
Giới thiệu ngôn ngữ phát triển phần mềm trên AutoCAD EmptyFri Feb 26, 2021 11:17 am by Nguyễn Đức

» Phần Lớn Dân Tàu Thủy Không Biết Pha Chế Món Đồ Uống Này
Giới thiệu ngôn ngữ phát triển phần mềm trên AutoCAD EmptyThu Feb 25, 2021 11:18 pm by nuocuongtot

» Nước tinh khiết Aquafina chính hãng tại Củ Chi
Giới thiệu ngôn ngữ phát triển phần mềm trên AutoCAD EmptyThu Dec 17, 2020 5:20 pm by nuocuongtot

» Giáo trình AutoSHIP - PGS.Ts Trần Gia Thái
Giới thiệu ngôn ngữ phát triển phần mềm trên AutoCAD EmptyThu Dec 03, 2020 10:05 pm by danvtt51

» Phần mềm ứng dụng NUPAS - CADMATIC
Giới thiệu ngôn ngữ phát triển phần mềm trên AutoCAD EmptyWed Dec 02, 2020 4:16 pm by Xuan Phuong

» Xin hồ sơ tàu mẫu hậu cần cá vỏ thép 30m-36m
Giới thiệu ngôn ngữ phát triển phần mềm trên AutoCAD EmptyTue Oct 27, 2020 6:46 pm by Nguyen Anh

» Mọi người cho em xin bản vẽ tàu chở dầu 3000 tấn với ạ
Giới thiệu ngôn ngữ phát triển phần mềm trên AutoCAD EmptyTue Oct 27, 2020 2:47 pm by duyvu2310hd

» Tổng hợp tàu kéo
Giới thiệu ngôn ngữ phát triển phần mềm trên AutoCAD EmptySat Oct 24, 2020 12:25 pm by VONGU

» Xin file tàu hàng khô 6500t
Giới thiệu ngôn ngữ phát triển phần mềm trên AutoCAD EmptyTue Oct 20, 2020 11:28 pm by garangpo123

» Phần Mềm Vẽ Đồ Thị Bonjean tự động
Giới thiệu ngôn ngữ phát triển phần mềm trên AutoCAD EmptyThu May 21, 2020 9:50 am by trongtin9798

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

Không

Số người truy cập cùng lúc nhiều nhất là 30 người, vào ngày Fri Apr 14, 2023 11:54 am
Statistics
Diễn Đàn hiện có 3834 thành viên
Chúng ta cùng chào mừng thành viên mới đăng ký: canthoz03

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

You are not connected. Please login or register

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

2 posters

Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

Admin

Admin
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.forumvi.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

https://tauthuy.forumvi.com

thanhbkdn

avatar
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

Admin
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

https://tauthuy.forumvi.com

thanhbkdn

avatar
Thành Viên Mới
Thành Viên Mới

cảm ơn hi

Sponsored content



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