máy bơm nước hỏa tiễn công ty in ấn https://duan-knparadise.com/ Bơm nước hỏa tiễn bóp da nam Túi nilon PP cong ty in bieu mau
VBA trong Autocad? - Diễn đàn của các kỹ sư kết cấu Việt Nam










































































Features
Go Back   Diễn đàn của các kỹ sư kết cấu Việt Nam > ỨNG DỤNG TIN HỌC TRONG THIẾT KẾ XÂY DỰNG > Phần mềm thiết kế do thành viên giới thiệu
Tên thành viên
Mật mã
Tin HOT Thông tin BQT diễn đàn

Result  Reload Thống Kê - Diễn đàn của các kỹ sư kết cấu Việt Nam
All Forums | Thông báo | Văn Bản Pháp Luật | Văn Hóa Văn Nghệ Giao Lưu
Please wait...
Please wait...
Trả lời
Ðiều Chỉnh Xếp Bài
Unread 05-01-2005   #1
But Chi
Thành viên mới
 
But Chi's Avatar
 
Tham gia ngày: Dec 2004
Bài gởi: 14
Thanks: 0
Thanked 3 Times in 3 Posts
Default VBA trong Autocad?

Có ai muốn nghiên cứu VBA trong CAD cùng với mình không. Chúng ta nghiên cứu trực tuyến luôn nhỉ. OK??? Nhưng phải thăm dò đã xem có ai quan tâm đến không. Chỉ nghiên cứu thêm một ngôn ngữ lập trình thôi, chứ tui cũng chưa làm một cái gì ra hồn cả . Ai cùng nghiên cứu thì vô đây chua một câu nào.

thay đổi nội dung bởi: terrible, 07-11-2013 lúc 03:44 PM
But Chi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
The Following User Says Thank You to But Chi For This Useful Post:
levanduy (27-11-2010)
Unread 05-01-2005   #2
PMXD
Moderator
 
PMXD's Avatar
 
Tham gia ngày: Sep 2004
Bài gởi: 205
Thanks: 0
Thanked 115 Times in 30 Posts
Default To But Chi

Bạn đang quan tâm đến VBA trong AutoCad sao? Đây là một vấn đề rất thú vị đấy. Nếu có chỗ nào bí thì cứ hỏi nhé, tôi sẽ trả lời cho. Tôi đã làm rất nhiều về cái này rồi mà
__________________
Công ty Cổ phần kỹ thuật công trình- Thương mại C.N.C.C
Email : info@cncc.vn
PMXD vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
The Following User Says Thank You to PMXD For This Useful Post:
levanduy (27-11-2010)
Unread 05-01-2005   #3
But Chi
Thành viên mới
 
But Chi's Avatar
 
Tham gia ngày: Dec 2004
Bài gởi: 14
Thanks: 0
Thanked 3 Times in 3 Posts
Default Lý do chọn VBA để học và nghiên cứu

Ta thấy rằng AutoCad là một hê vẽ mà ta có thể lập trình trên chúng một cách linh hoạt. Bạn có thể điều chỉnh Autocad từ các dòng lệnh, từ các menu, các thanh công cụ, từ các macro hoặc từ AutoLISP,VBA hay C++.

--------------
AutoDesk cung cấp cho chúng ta một bộ các phần mở rộng để kiểm soát AutoCad từ ngôn ngữ. Những phần mở rộng này được gọi là Object ARX. Đây là một phương pháp tiếp cận với CAD một cách chuyên nghiệp nhất tuy nhiên nó lại quá phức tạp đối với dân Xây chúng ta.

AutoLisp là một ngôn ngữ lập trình thông dịch, Nó là một phiên bản mới nhất về ngôn ngữ lập trình nhân tạo cũ nhất mà ngày nay vẫn còn được sử dụng. Autolisp nằm trong bộ Common LISP. LISP viết tắt của LIST Processor !. Nói chung Lisp dễ học bở cú pháp của nó đơn giản nhưng nó không tương tác được vớic các cơ sở dữ liệu như Excel, access. Nên việc sử dụng nó tạo ra các ứng dụng to tát là hơi chuối. Viết các chương trình phức tạp thì rất lằng nhằng. Tuy nhiên mức độ lằng nhằng đã được giảm bớt đi rất nhiều trong Visual LISP !

VBA viết tắt của visual Basic Application. Cũng như Object Arx thì VBA cũng là một môi trường lập trình hướng đối tượng sử dụng ngôn ngữ VB. ưu điểm của VBA là sử dụng VB, một ngôn ngữ lập trình tương đối thông dụng và dễ học.VBA nằm trong CAD nên tốc độ chạy cũng tương đối nhanh, Dễ dạng trong việc tạo ra các giao diện (hộp thoại, menu). Chia sẽ tương đối tốt dữ liệu với các ứng dụng khác trên môi trường Window.

--------------
Từ sự phân tích trên tôi quyết định chọn VBA làm ngôn ngữ thứ n để nghiên cứu. . Bài tiếp theo chúng ta sẽ nghiên cứu đến AutoCAD ActiveX . Nếu ai biết hoặc quan tâm, xin gửi bài giới thiệu về AutoCAD ActiveX. xin cảm ơn !
But Chi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
The Following User Says Thank You to But Chi For This Useful Post:
levanduy (27-11-2010)
Unread 08-01-2005   #4
tdhtkcd
Thành viên
 
tdhtkcd's Avatar
 
Tham gia ngày: Dec 2004
Nơi Cư Ngụ: Hà Nội
Bài gởi: 55
Thanks: 5
Thanked 5 Times in 5 Posts
Send a message via Yahoo to tdhtkcd
Lightbulb

Em xin hỏi các bác 1 câu về VBA:
Khi dùng VBA để tạo giao diện người dùng rất tiện so với tạo bằng file
*.mnu và *.dcl trong CAD nhưng khi em muốn tạo 1 menu :Ví dụ NewMenu (Bên cạnh menu Help của CAD)Menu này có 1 lệnh (VD:Lệnh1)
Lệnh này sẽ gọi 1 form để người dùng nhập liệu =>thì lệnh gọi 1 form ra sẽ là gì (trong VBA)??Bác nào đã từng có kinh nghiệm xin chỉ giúp.
tdhtkcd vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Unread 17-01-2005   #5
daucuchuoi
Thành viên
 
Tham gia ngày: Jan 2005
Bài gởi: 44
Thanks: 0
Thanked 10 Times in 6 Posts
Default

Làm thế này nhá:
I. Để bấm được nút
1. Bấm nút phải chuột vào 1 thanh toolbar nào đó, chọn customize
2. Bấm tiếp nút phải chuột vào nút toolbar nào đó, ví dụ zoom
3. Chọn properties...
4. Xem lệnh gọi chương trình ở đó (nếu là macro thì dùng lệnh vbarun)
5. Thế là chạy
daucuchuoi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Unread 19-01-2005   #6
tdhtkcd
Thành viên
 
tdhtkcd's Avatar
 
Tham gia ngày: Dec 2004
Nơi Cư Ngụ: Hà Nội
Bài gởi: 55
Thanks: 5
Thanked 5 Times in 5 Posts
Send a message via Yahoo to tdhtkcd
Default

Trích:
Nguyên văn bởi daucuchuoi
Làm thế này nhá:
I. Để bấm được nút
1. Bấm nút phải chuột vào 1 thanh toolbar nào đó, chọn customize
2. Bấm tiếp nút phải chuột vào nút toolbar nào đó, ví dụ zoom
3. Chọn properties...
4. Xem lệnh gọi chương trình ở đó (nếu là macro thì dùng lệnh vbarun)
5. Thế là chạy
Bác có thể upload lên đây hình minh họa được không?
Em nghĩ là bác chưa chạy thử hoặc là bác hiểu nhầm ý em hỏi rồi thì phải.
Để em làm mấy cái hinh minh họa cho câu hỏi của em rồi em đưa lên đây cho bác xem.Cả code VBA luôn.Em thật sự vướng mắc.Mong bác chỉ cho em với.
tdhtkcd vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Unread 20-01-2005   #7
PMXD
Moderator
 
PMXD's Avatar
 
Tham gia ngày: Sep 2004
Bài gởi: 205
Thanks: 0
Thanked 115 Times in 30 Posts
Default

Trích:
Nguyên văn bởi tdhtkcd
Em xin hỏi các bác 1 câu về VBA:
Khi dùng VBA để tạo giao diện người dùng rất tiện so với tạo bằng file
*.mnu và *.dcl trong CAD nhưng khi em muốn tạo 1 menu :Ví dụ NewMenu (Bên cạnh menu Help của CAD)Menu này có 1 lệnh (VD:Lệnh1)
Lệnh này sẽ gọi 1 form để người dùng nhập liệu =>thì lệnh gọi 1 form ra sẽ là gì (trong VBA)??Bác nào đã từng có kinh nghiệm xin chỉ giúp.
Để gọi 1 form trong VB hay VBA thì câu lệnh đơn giản chỉ là
TenForm.Show
Còn để AutoCad tự động thêm vào một Menu hay Toolbar thì khá phức tạp đấy. Sau đây là những dòng lệnh mà tôi đã viết để thêm Menu cho AutoCad.
'====================================================
Sub Toolbar()
' This example creates a new toolbar called TestToolbar and inserts a
' toolbar button into it. The toolbar is then displayed.
' To remove the toolbar after execution of this macro, use the Customize Menu
' option from the Tools menu.
Dim i As Integer
On Error GoTo Loix
Dim currMenuGroup As AcadMenuGroup
AppPath = ThisDrawing.Path

FrmWelcome.Show

Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)

'currMenuGroup.Menus("TK_Dan").RemoveFromMenuBar

'Create the new toolbar
Dim newToolBar As AcadToolbar
Set newToolBar = currMenuGroup.Toolbars.Add("TK_Thep")
newToolBar.Dock acToolbarDockLeft

'Add a button to the new toolbar
Dim newButton As AcadToolbarItem
Dim openMacro As String
Dim DD As String
DD = ThisDrawing.Path & "\Image"
Dim Bm As String

'Assign the macro string the VB equivalent of "ESC ESC _open "
openMacro = Chr(3) & Chr(3) & Chr(95) & "TK" & Chr(32)
Set newButton = newToolBar.AddToolbarButton("", "Thiet Ke Thanh", "Open a file.", openMacro)
Bm = DD & "\Tk_thanh.bmp"
newButton.SetBitmaps Bm, Bm

openMacro = Chr(3) & Chr(3) & Chr(95) & "BM" & Chr(32)
Set newButton = newToolBar.AddToolbarButton("", "Thiet Ke Ban Ma", "Open a file.", openMacro)
Bm = DD & "\Tk_Banma.bmp"
newButton.SetBitmaps Bm, Bm

openMacro = Chr(3) & Chr(3) & Chr(95) & "CPT" & Chr(32)
Set newButton = newToolBar.AddToolbarButton("", "Copy thuoc tinh thanh", "Open a file.", openMacro)
Bm = DD & "\Copy_Thanh.bmp"
newButton.SetBitmaps Bm, Bm

openMacro = Chr(3) & Chr(3) & Chr(95) & "UD" & Chr(32)
Set newButton = newToolBar.AddToolbarButton("", "Cap Nhat Ban Ve", "Open a file.", openMacro)
Bm = DD & "\Update.bmp"
newButton.SetBitmaps Bm, Bm

openMacro = Chr(3) & Chr(3) & Chr(95) & "CTBM" & Chr(32)
Set newButton = newToolBar.AddToolbarButton("", "Chi Tiet Ban Ma", "Open a file.", openMacro)
Bm = DD & "\Chitiet_BM.bmp"
newButton.SetBitmaps Bm, Bm

openMacro = Chr(3) & Chr(3) & Chr(95) & "CTT" & Chr(32)
Set newButton = newToolBar.AddToolbarButton("", "Chi Tiet Thanh", "Open a file.", openMacro)
Bm = DD & "\ChiTiet_Thanh.bmp"
newButton.SetBitmaps Bm, Bm

openMacro = Chr(3) & Chr(3) & Chr(95) & "TKT" & Chr(32)
Set newButton = newToolBar.AddToolbarButton("", "Thong ke khoi luong", "Open a file.", openMacro)
Bm = DD & "\TKT.bmp"
newButton.SetBitmaps Bm, Bm



' openMacro = Chr(3) & Chr(3) & Chr(95) & "TKBM" & Chr(32)
' Set newButton = newToolBar.AddToolbarButton("", "Thong ke ban ma", "Open a file.", openMacro)
' Bm = DD & "\TKBM.bmp"
' newButton.SetBitmaps Bm, Bm
'
' openMacro = Chr(3) & Chr(3) & Chr(95) & "TKBL" & Chr(32)
' Set newButton = newToolBar.AddToolbarButton("", "Thong ke bu long", "Open a file.", openMacro)
' Bm = DD & "\TKBL.bmp"
' newButton.SetBitmaps Bm, Bm


'Display the toolbar
newToolBar.Visible = True
'\\\\\\Tao menu bar
' Create the new menu
Dim newMenu As AcadPopupMenu

Set newMenu = currMenuGroup.Menus.Add("SCD Menu")

' Add a menu item to the sub menu
Dim newMenuItem As AcadPopupMenuItem

' Assign the macro string the VB equivalent of "ESC ESC _open "
openMacro = Chr(3) & Chr(3) & Chr(95) & "TK" & Chr(32)
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, "Thiet Ke Thanh", openMacro)
newMenu.InsertInMenuBar (ThisDrawing.Application.MenuBar.Count + 1)

openMacro = Chr(3) & Chr(3) & Chr(95) & "CPT" & Chr(32)
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, "Copy Thuoc Tinh Thanh", openMacro)

openMacro = Chr(3) & Chr(3) & Chr(95) & "BM" & Chr(32)
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, "Thiet Ke Ban Ma", openMacro)

openMacro = Chr(3) & Chr(3) & Chr(95) & "CTBM" & Chr(32)
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, "Chi Tiet Ban Ma", openMacro)

openMacro = Chr(3) & Chr(3) & Chr(95) & "CTT" & Chr(32)
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, "Chi Tiet Thanh", openMacro)

openMacro = Chr(3) & Chr(3) & Chr(95) & "TKT" & Chr(32)
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, "Thong Ke Khoi Luong", openMacro)

'==========================================================================================

openMacro = Chr(3) & Chr(3) & Chr(95) & "KHOITAO" & Chr(32)
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, "Khoi tao ban ve", openMacro)

openMacro = Chr(3) & Chr(3) & Chr(95) & "GIAIPHONG" & Chr(32)
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, "Loai bo du lieu", openMacro)

openMacro = Chr(3) & Chr(3) & Chr(95) & "DK" & Chr(32)
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, "Dang ky su dung", openMacro)

Loix:

End Sub
'====================================================
__________________
Công ty Cổ phần kỹ thuật công trình- Thương mại C.N.C.C
Email : info@cncc.vn
PMXD vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
The Following User Says Thank You to PMXD For This Useful Post:
levanduy (27-11-2010)
Unread 20-01-2005   #8
ldz
Thành viên mới
 
ldz's Avatar
 
Tham gia ngày: Jan 2005
Bài gởi: 22
Thanks: 0
Thanked 2 Times in 2 Posts
Smile

Tôi cũng quan tâm đến vấn đề này
Dùng VBA trong CAD viết dễ dàng hơn và dễ kiểm soát hơn do tận dụng dc lợi thế của VB.Tuy nhiên Tôi nghĩ là chúng ta nên tập trung chủ đề cho CAD(CAD only) nhũng vấn đề đã quá rõ cho VB thì không nên bàn ở đây ( coi như các Quí vị đã biết rồi).Cái cần biết thêm là dùng VBA trong CAD chúng ta làm thêm dc gì?Tự động hoá dc gì?Các bác nào có phần mềm nc ngoài viết sẵn thì upload lên để khỏi phải viết lại, hay chỉnh sửa cho phù hợp v VN
Mong dc trao đổi
ldz vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Unread 20-01-2005   #9
PMXD
Moderator
 
PMXD's Avatar
 
Tham gia ngày: Sep 2004
Bài gởi: 205
Thanks: 0
Thanked 115 Times in 30 Posts
Default

Trích:
Nguyên văn bởi ldz
Tôi cũng quan tâm đến vấn đề này
Dùng VBA trong CAD viết dễ dàng hơn và dễ kiểm soát hơn do tận dụng dc lợi thế của VB.Tuy nhiên Tôi nghĩ là chúng ta nên tập trung chủ đề cho CAD(CAD only) nhũng vấn đề đã quá rõ cho VB thì không nên bàn ở đây ( coi như các Quí vị đã biết rồi).Cái cần biết thêm là dùng VBA trong CAD chúng ta làm thêm dc gì?Tự động hoá dc gì?Các bác nào có phần mềm nc ngoài viết sẵn thì upload lên để khỏi phải viết lại, hay chỉnh sửa cho phù hợp v VN
Mong dc trao đổi
Dùng VBA trong Cad, chúng ta có thể làm gần như mọi thứ thay vì chúng ta phải ngồi gõ từng lệnh: Line, Circle, Pan, Zoom.... Với mỗi một lĩnh vực thì chúng ta có thể tạo nên một ứng dụng để điểu khiển Cad vẽ theo ý muốn của người lập trình. Bản thân tôi thì tôi thấy VBA có rất nhiều cái hữu ích để tạo nên các ứng dụng cho ngành Xây dựng. Ngoài những khả năng gọi các lệnh thông thường của AutoCad như đã kể trên, VBA còn cho phép dễ dàng truy xuất Database, ghi dữ liệu vào các đối tượng vẽ (Extend data) và quản lý đối tượng theo Handle...
Bản thân bạn, tôi chưa rõ bạn quan tâm đến lĩnh vực nào để có thể ứng dụng VBA cho lĩnh vực đó.
__________________
Công ty Cổ phần kỹ thuật công trình- Thương mại C.N.C.C
Email : info@cncc.vn
PMXD vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
The Following User Says Thank You to PMXD For This Useful Post:
levanduy (27-11-2010)
Unread 21-01-2005   #10
tdhtkcd
Thành viên
 
tdhtkcd's Avatar
 
Tham gia ngày: Dec 2004
Nơi Cư Ngụ: Hà Nội
Bài gởi: 55
Thanks: 5
Thanked 5 Times in 5 Posts
Send a message via Yahoo to tdhtkcd
Default

Trích:
Nguyên văn bởi ldz
Tôi cũng quan tâm đến vấn đề này
Dùng VBA trong CAD viết dễ dàng hơn và dễ kiểm soát hơn do tận dụng dc lợi thế của VB.Tuy nhiên Tôi nghĩ là chúng ta nên tập trung chủ đề cho CAD(CAD only) nhũng vấn đề đã quá rõ cho VB thì không nên bàn ở đây ( coi như các Quí vị đã biết rồi).Cái cần biết thêm là dùng VBA trong CAD chúng ta làm thêm dc gì?Tự động hoá dc gì?Các bác nào có phần mềm nc ngoài viết sẵn thì upload lên để khỏi phải viết lại, hay chỉnh sửa cho phù hợp v VN
Mong dc trao đổi
Bác không biết chứ các anh trên em 1 khóa họ TDH vẽ cả 1 cái cầu đấy.
Cám ơn anh PMXD
Lúc trước em cứ viết như thế này:

openMacro = "TenForm.Show"

=> Cad nó chả hiểu thế nào cả.(Chán thế cơ chứ...)
tdhtkcd vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Unread 21-01-2005   #11
PMXD
Moderator
 
PMXD's Avatar
 
Tham gia ngày: Sep 2004
Bài gởi: 205
Thanks: 0
Thanked 115 Times in 30 Posts
Default

Trích:
Nguyên văn bởi tdhtkcd
Bác không biết chứ các anh trên em 1 khóa họ TDH vẽ cả 1 cái cầu đấy.
Cám ơn anh PMXD
Lúc trước em cứ viết như thế này:

openMacro = "TenForm.Show"

=> Cad nó chả hiểu thế nào cả.(Chán thế cơ chứ...)
1- Nếu bạn để trong ngoặc kép thế kia " " thì VB sẽ hiểu TenForm.Show là một chuỗi.
2- Trong VBA hình như không có đối tượng nào tên là openMacro

Nếu bạn muốn học VBA, cách tốt nhất là đọc trong Help, Ở đó nó có sẵn các ví dụ cụ thể cho từng trường hợp. Bạn hãy Copy các đoạn Code vào, chạy thử, nghiền ngẫm thì se khá liền (Cách này đối với tôi là nhanh nhất)

Chuc bạn thành công
__________________
Công ty Cổ phần kỹ thuật công trình- Thương mại C.N.C.C
Email : info@cncc.vn
PMXD vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Unread 28-01-2005   #12
tdhtkcd
Thành viên
 
tdhtkcd's Avatar
 
Tham gia ngày: Dec 2004
Nơi Cư Ngụ: Hà Nội
Bài gởi: 55
Thanks: 5
Thanked 5 Times in 5 Posts
Send a message via Yahoo to tdhtkcd
Default

Bác cho em hỏi chi tiết thêm 1 tý nha:

Ví dụ thế này nhé:
'\\\\\\Em tao 1 menu bar PMXD Menu
'====================================================
Sub newmenu()
On Error GoTo Loix

Dim newMenu As AcadPopupMenu
Set newMenu = currMenuGroup.Menus.Add("PMXD Menu")
Dim newMenuItem As AcadPopupMenuItem
openMacro = Chr(3) & Chr(3) & Chr(95) & "Lenh1" & Chr(32)
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, "Lenh1", openMacro)
newMenu.InsertInMenuBar (ThisDrawing.Application.MenuBar.Count + 1)

Loix:

End Sub
'====================================================

Nhưng cái lệnh 1 kia phải thế nào...???... để khi chọn vào PMXD menu >Lenh 1 thì cho kết quả là FrmWelcome hiện ra(Giả sử em đã tạo xong Form FrmWelcome)


Mong được tiếp tục hỏi các anh về VBA !
tdhtkcd vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Unread 28-01-2005   #13
PMXD
Moderator
 
PMXD's Avatar
 
Tham gia ngày: Sep 2004
Bài gởi: 205
Thanks: 0
Thanked 115 Times in 30 Posts
Default

Để form frmWelcome hiện ra khi nhấn vào Menu lenh 1 thì bạn phải làm như sau:
- Tạo ra một Module (ví dụ tên module là mdlVietAnh). Trong Module này có một Proceduce :
Sub ShowForm
frmWelcome.show
End sub
- Tạo ra một file Autolisp để tạo ra một lệnh mới cho AutoCad(Ví dụ tên lệnh này là VA). Gán lệnh này để nó gọi Sub ShowForm
- Gán tên của lệnh VA cho lenh 1

Nếu để ý kỹ, bạn có thể thấy rằng: Việc tạo ra một Menu hay Toolbar cho AutoCad và gán lệnh cho nó thì bắt buộc phải thông qua một lệnh của AutoCad.Mà muốn tạo ra một lệnh của AutoCad thì phải nhờ đến AutoLisp (hoặc phương tiện khác). Đây là một trong những điểm rất không hay của VBA.
Chuc bạn thành công
__________________
Công ty Cổ phần kỹ thuật công trình- Thương mại C.N.C.C
Email : info@cncc.vn
PMXD vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
The Following User Says Thank You to PMXD For This Useful Post:
levanduy (27-11-2010)
Unread 28-01-2005   #14
nglam_adg
Thành viên rất tích cực
 
nglam_adg's Avatar
 
Tham gia ngày: Dec 2004
Nơi Cư Ngụ: Hà Nội
Bài gởi: 327
Thanks: 16
Thanked 361 Times in 88 Posts
Talking Mạn phép các bác VBA !!!

Mạn phép các bác VBA, Tôi thấy dùng AutoLisp để gán thêm menu vào AutoCAD hình như đơn giản hơn. Đối với AutoCAD, nemu chỉ là cái vỏ thôi còn đường dẫn đến các thư mục chứa các Files Support (không nằm trong các thư mục mặc định của AutoCAD) mới là quan trọng - Mà AutoLisp làm việc này rất ngon. Tôi đã thử dùng VBA rồi nhưng thấy khó làm, khó sửa hơn. Bác nào cần biết cách làm bằng AutoLisp thì ghé qua bên "Visual Lisp" vì đây là đất VBA mà !
nglam_adg vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Unread 28-01-2005   #15
PMXD
Moderator
 
PMXD's Avatar
 
Tham gia ngày: Sep 2004
Bài gởi: 205
Thanks: 0
Thanked 115 Times in 30 Posts
Default

Đúng là việc làm Menu đối với VBA phức tạp hơn AutoLisp thật, nhưng để lựa chọn 1 trong 2 phương tiện phát triển, tôi vẫn chọn VBA hơn AutoLisp, vì bản thân tôi đã làm cả 2 thứ trên. Còn phương án hay nhất, theo tôi là biết cách sử dụng công cụ nào trong từng trường hợp cụ thể. Tôi cũng rất mong được thảo luận với các bạn về vấn đề này.
__________________
Công ty Cổ phần kỹ thuật công trình- Thương mại C.N.C.C
Email : info@cncc.vn
PMXD vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Unread 29-01-2005   #16
But Chi
Thành viên mới
 
But Chi's Avatar
 
Tham gia ngày: Dec 2004
Bài gởi: 14
Thanks: 0
Thanked 3 Times in 3 Posts
Default

Chào các bác, Lâu lâu mới vào thấy các bác bàn tán xôn xao quá. Em cũng có một vấn đề vướng mắc như thế này. Làm sao để tạo ra một form như cửa sổ propertie.
1. Có chức năng bám dính với các cửa sổ (Docking form)
2. Kiểm soát toàn bộ cad, ví dụ như khi chọn đối tượng thì cửa sổ properties sẽ hiện ra các thông số của đối tượng đó (điều khiển các event)
Em nghĩ mãi mà không ra nên vào đây hỏi các bác. Bác nào biết thì chỉ dùm em với.

Thanks

thay đổi nội dung bởi: But Chi, 29-01-2005 lúc 05:35 PM
But Chi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Unread 29-01-2005   #17
tdhtkcd
Thành viên
 
tdhtkcd's Avatar
 
Tham gia ngày: Dec 2004
Nơi Cư Ngụ: Hà Nội
Bài gởi: 55
Thanks: 5
Thanked 5 Times in 5 Posts
Send a message via Yahoo to tdhtkcd
Default

Trích:
Nguyên văn bởi But Chi
2. Kiểm soát toàn bộ cad, ví dụ như khi chọn đối tượng thì cửa sổ properties sẽ hiện ra các thông số của đối tượng đó (điều khiển các event)
Em nghĩ mãi mà không ra nên vào đây hỏi các bác. Bác nào biết thì chỉ dùm em với.
Thanks
Tôi có làm 1 bài toán mà thầy tôi bắt làm:
Bài toán quản lý lỗ khoan.Nếu ta Click vào 1 lỗ khoan trên màn hình Cad thì cho phép người dùng kiểm soát các thông số của lỗ khoan đó ,gồm có Số lớp địa chất ,tên lớp ,chiều sâu,...Có thể thay đổi các thuộc tính của nó(Thông qua làm việc với 1 file CSDL).Đó cũng là cách mà VBA của CAD cung cấp (trong các Ví dụ).Không biết có phải tôi hiểu ý của bạn là như vậy không?
tdhtkcd vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Unread 29-01-2005   #18
tdhtkcd
Thành viên
 
tdhtkcd's Avatar
 
Tham gia ngày: Dec 2004
Nơi Cư Ngụ: Hà Nội
Bài gởi: 55
Thanks: 5
Thanked 5 Times in 5 Posts
Send a message via Yahoo to tdhtkcd
Default

Trích:
Nguyên văn bởi nglam_adg
Mạn phép các bác VBA, Tôi thấy dùng AutoLisp để gán thêm menu vào AutoCAD hình như đơn giản hơn. Đối với AutoCAD, nemu chỉ là cái vỏ thôi còn đường dẫn đến các thư mục chứa các Files Support (không nằm trong các thư mục mặc định của AutoCAD) mới là quan trọng - Mà AutoLisp làm việc này rất ngon. Tôi đã thử dùng VBA rồi nhưng thấy khó làm, khó sửa hơn. Bác nào cần biết cách làm bằng AutoLisp thì ghé qua bên "Visual Lisp" vì đây là đất VBA mà !
Anh Lam thân mến!Mong được anh hd thêm về Lisp nha.

Trích:
Nguyên văn bởi PMXD
Đúng là việc làm Menu đối với VBA phức tạp hơn AutoLisp thật, nhưng để lựa chọn 1 trong 2 phương tiện phát triển, tôi vẫn chọn VBA hơn AutoLisp, vì bản thân tôi đã làm cả 2 thứ trên. Còn phương án hay nhất, theo tôi là biết cách sử dụng công cụ nào trong từng trường hợp cụ thể. Tôi cũng rất mong được thảo luận với các bạn về vấn đề này.!
Em cũng thấy rõ lợi ích của VBA đặc biệt là khi thao tác với CSDL
Nếu bây giờ em có khoảng 800 điểm Mi mà mỗi diểm có(xMi,yMi,zMi,tenMi,chú thích về Mi,....) ví dụ trong TK Đường chẳng hạn thì việc quản lý nó và vẽ nó ra màn hình với VBA là phù hợp với khả năng của em nhất,...
Khi thêm bớt các điểm vào CSDL hay cần nói chuyện với Word để tạo 1 bản Báo Cáo kèm theo bản vẽ thì chắc là.....Lisp không thể (Không hiểu có đúng không?Có gì anh Lam cho ý kiến thêm)
Cũng phải nói thêm rằng việc TĐH = VBA hay Lisp cũng chỉ có ích nếu ta phải làm 1 quá trình nào đó lặp đi lặp lại.Có đúng không ạ?Xin các bác bình luận thêm...

Nhưng với những Công việc nhẹ nhàng hay dự án nhỏ nhắn <=>những tiện ích theo kiểu Mì ăn Liền thì cả Lisp và VBA đều rất tuyệt

Em ghét những thao tác "Cơ bắp" vì thế mà em chọn VBA nhưng em cũng rất mong biết những hạn chế của nó.Mời các bác tiếp tục bàn luận thêm...
tdhtkcd vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Unread 29-01-2005   #19
Minh
Thành viên
 
Tham gia ngày: Sep 2004
Bài gởi: 48
Thanks: 0
Thanked 7 Times in 5 Posts
Default

Trích:
Nguyên văn bởi tdhtkcd
Tôi có làm 1 bài toán mà thầy tôi bắt làm:
Bài toán quản lý lỗ khoan.Nếu ta Click vào 1 lỗ khoan trên màn hình Cad thì cho phép người dùng kiểm soát các thông số của lỗ khoan đó ,gồm có Số lớp địa chất ,tên lớp ,chiều sâu,...Có thể thay đổi các thuộc tính của nó(Thông qua làm việc với 1 file CSDL).Đó cũng là cách mà VBA của CAD cung cấp (trong các Ví dụ).Không biết có phải tôi hiểu ý của bạn là như vậy không?
Cái này lập trình bằng ObjectARX tạo ra "custom object" là chuẩn nhất, nhưng hơi khó với người lập trình nghiệp dư. Nếu bạn có nhiều thời gian và chịu khó thì có thể tìm hiểu thêm, rất bổ ích đấy.
Minh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Unread 29-01-2005   #20
PMXD
Moderator
 
PMXD's Avatar
 
Tham gia ngày: Sep 2004
Bài gởi: 205
Thanks: 0
Thanked 115 Times in 30 Posts
Default

Trích:
Nguyên văn bởi tdhtkcd
Tôi có làm 1 bài toán mà thầy tôi bắt làm:
Bài toán quản lý lỗ khoan.Nếu ta Click vào 1 lỗ khoan trên màn hình Cad thì cho phép người dùng kiểm soát các thông số của lỗ khoan đó ,gồm có Số lớp địa chất ,tên lớp ,chiều sâu,...Có thể thay đổi các thuộc tính của nó(Thông qua làm việc với 1 file CSDL).Đó cũng là cách mà VBA của CAD cung cấp (trong các Ví dụ).Không biết có phải tôi hiểu ý của bạn là như vậy không?
Vấn đề này VBA hoàn toàn có thể làm được bằng cách sử dụng Extend Data. Đây là một kỹ thuật cũng hơi phức tạp, nếu viết trên diễn đàn e rằng hơi tốn "đất", bạn có thể liên hệ trực tiếp với tôi để có được giải pháp như mong muốn.
Chúc vui vẻ.
__________________
Công ty Cổ phần kỹ thuật công trình- Thương mại C.N.C.C
Email : info@cncc.vn
PMXD vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền sử dụng ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Mở

Chuyển đến



Múi giờ GMT. Hiện tại là 09:53 AM.


DIỄN ĐÀN http://ketcau.com/forum NƠI HỘI TỤ CỦA CÁC KỸ SƯ KẾT CÂU VIỆT NAM
WWW.KETCAU.COM - CẦU NỐI CỦA CÁC KỸ SƯ KẾT CẤU CÔNG TRÌNH, ĐỊA KỸ THUẬT VIỆT NAM. DIỄN ĐÀN ĐƯỢC MUA BẢN QUYỀN CỦA JELSOFT ENTERPRISES Ltd.