BKXD98 0 Báo cáo bài đăng Đã đăng Tháng 8 20, 2007 Các tiện ích vba tôi đang dùng gặp phải một vấn đề là khi cài các phiên bản khác nhau của acad và excel thì nó chạy không chính xác hay không chạy được, tôi phải vào tools/references để chọn lại library tương ứng với version của acad và excel, xin hỏi các bác có đoạn code nào giải quyết được vấn đề này không (kiểm tra version của acad và excel rồi tự chọn library tương ứng) ? Xin cảm ơ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
Nguyen Hoanh 4670 Báo cáo bài đăng Đã đăng Tháng 8 20, 2007 Các tiện ích vba tôi đang dùng gặp phải một vấn đề là khi cài các phiên bản khác nhau của acad và excel thì nó chạy không chính xác hay không chạy được, tôi phải vào tools/references để chọn lại library tương ứng với version của acad và excel, xin hỏi các bác có đoạn code nào giải quyết được vấn đề này không (kiểm tra version của acad và excel rồi tự chọn library tương ứng) ?Xin cảm ơn. Version của Excel bằng lệnh VBA: Application.Version Version của AutoCAD bằng lệnh Lisp: (getvar "ACADVER") 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
BKXD98 0 Báo cáo bài đăng Đã đăng Tháng 8 20, 2007 Version của Excel bằng lệnh VBA:Application.Version Version của AutoCAD bằng lệnh Lisp: (getvar "ACADVER") Làm thế nào để chọn library tương ứng với version (= code) vậy bá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
Nguyen Hoanh 4670 Báo cáo bài đăng Đã đăng Tháng 8 20, 2007 Làm thế nào để chọn library tương ứng với version (= code) vậy bác ? chịu! Bạn hỏi cao siêu quá! VBA hay lisp nó chỉ là 1 đoạn script, hỗ trợ cho công việc, chưa bao giờ tôi phải đụng chạm đến file library 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
phantuhuong 227 Báo cáo bài đăng Đã đăng Tháng 8 21, 2007 chịu!Bạn hỏi cao siêu quá! VBA hay lisp nó chỉ là 1 đoạn script, hỗ trợ cho công việc, chưa bao giờ tôi phải đụng chạm đến file library cả! Bạn thử xem thêm mục này xem, chú ý code của anh Long: http://geosoftvn.com/forum/topic.asp?TOPIC_ID=325 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
BKXD98 0 Báo cáo bài đăng Đã đăng Tháng 8 22, 2007 Bạn thử xem thêm mục này xem, chú ý code của anh Long: http://geosoftvn.com/forum/topic.asp?TOPIC_ID=325 Tôi chưa test thử, nhưng nhìn sơ qua thì đúng là cái tôi đang cần, có vẻ bác tham gia nhiều forum ... Cảm ơn bác Phantuhuong. 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
phantuhuong 227 Báo cáo bài đăng Đã đăng Tháng 10 24, 2007 Bạn nào có sử dụng AutoCad 2006, 2007, 2008 thi cho tôi xin các version vớ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
nttu 0 Báo cáo bài đăng Đã đăng Tháng 12 13, 2007 Bạn nào có sử dụng AutoCad 2006, 2007, 2008 thi cho tôi xin các version với. có rất nhiều version AutoCad 2007, Nhưng 2008 dùng nhẹ hơ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
phantuhuong 227 Báo cáo bài đăng Đã đăng Tháng 12 18, 2007 có rất nhiều version AutoCad 2007, Nhưng 2008 dùng nhẹ hơn Tôi muốn tìm hiểu các version của AutoCad các đời sau 2004 bằng cách gõ đoạn code ?Application.Version, sau đó Enter) trong cửa sổ Immediate của VBA. Các bạn có cad 2005, 2006, 2008 giúp tôi nhé! Ví dụ dưới đây là thực hiện ở AutoCad 2004: 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 1104 Báo cáo bài đăng Đã đăng Tháng 12 18, 2007 Tôi muốn tìm hiểu các version của AutoCad các đời sau 2004 bằng cách gõ đoạn code ?Application.Version, sau đó Enter) trong cửa sổ Immediate của VBA. Các bạn có cad 2005, 2006, 2008 giúp tôi nhé! Có thể thực hiện bằng lệnh lisp. Gõ ngay tại dòng Command của Acad. Command: (getvar "acadver") Mình chỉ có bản 2007 -> 17.0s (LMS Tech) 1 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
phantuhuong 227 Báo cáo bài đăng Đã đăng Tháng 1 11, 2008 Tôi có cách này hay hơn là phải khai báo trong thư viện anh BKXD ơi: - Khai báo thư viện và đối tượng như bình thường. - Sau khi chương trình ổn định thì thay các đối tượng như AcadLine, AcadText,... thành Object hết! (biến liên kết sớm thành muộn) Thế là không lo version nữa- nhưng yêu cầu phải từ Cad 2000 trở lên (14 không đượ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
anhcos 196 Báo cáo bài đăng Đã đăng Tháng 1 13, 2008 Có 2 cách để giao tiếp với Cad=VB 1. Sử dụng thư viện (*.tbl), đễ dàng khi lập trình vì các đối tượng và h?ng đã được nhập vào, VD: Dim acadApp as AcadApplication or Dim la as AcadLayer or acadApp.WindowState=acMax Tuy nhiên có nhược điểm là khi khai báo thư viện nào, sau khi compiler xong, thì chương trình chỉ làm việc với version đó mà thôi. 2. Không dùng Thư viện : Mọi đối tượng Cad đều khai báo là Object CD: Dim acadApps Object Lúc đó ta có thể viết acadApp.WindowState=1'acMax(không nhớ chính xác lắm) Với cách này chương trình có thể liên kết với mọi version of Acad. Tuy nhiên khi lập trình bạn phải nhớ k? các properties, method và event của từng đối tượng, và cần nhớ giá trị các hằng số của acad 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
phantuhuong 227 Báo cáo bài đăng Đã đăng Tháng 1 16, 2008 Có 2 cách để giao tiếp với Cad=VB2. Không dùng Thư viện : Mọi đối tượng Cad đều khai báo là Object CD: Dim acadApps Object Lúc đó ta có thể viết acadApp.WindowState=1'acMax(không nhớ chính xác lắm) Với cách này chương trình có thể liên kết với mọi version of Acad. Tuy nhiên khi lập trình bạn phải nhớ k? các properties, method và event của từng đối tượng, và cần nhớ giá trị các hằng số của acad Cách này là chính xác và không lo về vấn đề version AutoCad nữa. Cách khắc phục đỏ đỏ trên là cứ làm như cách 1, sau đó chuyển sang cách 2 bằng cách thay đối tượng ... bằng Object thôi, thay giá trị thuộc tính bằng hằng số (cái này phải đọc thêm trong Help). VD: Dim as Object 'AcadLine 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
BKXD98 0 Báo cáo bài đăng Đã đăng Tháng 8 16, 2008 Vô tình vào lại topic này, cuối cùng cũng đã có cách khắc phục macro phụ thuộc version của acad, thanks các bá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
phantuhuong 227 Báo cáo bài đăng Đã đăng Tháng 8 16, 2008 Vô tình vào lại topic này, cuối cùng cũng đã có cách khắc phục macro phụ thuộc version của acad, thanks các bác. Cứ thực hiện như trong môi trường VBA for Cad, sau đó thay bằng Object là yên tâm anh BKXD98 à. PS: Lâu mới thấy anh BKXD98 vào, dạo này VBA đến đâu rồi để chia sẻ với diễn đàn chứ> 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
BKXD98 0 Báo cáo bài đăng Đã đăng Tháng 8 29, 2008 PS: Lâu mới thấy anh BKXD98 vào, dạo này VBA đến đâu rồi để chia sẻ với diễn đàn chứ> :lol: dạo này lo chuyện "cơm gạo" quá nên không có thời gian để nghiên cứu VBA nữa, anh phantuhuong có vẻ thích món VBA này ? 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
HTTP 0 Báo cáo bài đăng Đã đăng Tháng 9 30, 2008 Tôi có cách này hay hơn là phải khai báo trong thư viện anh BKXD ơi:- Khai báo thư viện và đối tượng như bình thường. - Sau khi chương trình ổn định thì thay các đối tượng như AcadLine, AcadText,... thành Object hết! (biến liên kết sớm thành muộn) Thế là không lo version nữa- nhưng yêu cầu phải từ Cad 2000 trở lên (14 không được) Bác Phantuhuong có thể cho một ví dụ dùng VB.net vẽ một đoạn thẳng được không. Tôi đã thử rồi mà không làm được. Để mở Cad ra vẽ thì tôi dùng đoạn mã: Public vAcadApp As Autodesk.AutoCAD.Interop.AcadApplication vAcadApp = New Autodesk.AutoCAD.Interop.AcadApplication vAcadApp.Visible = True nhưng để dùng được cái này thì phải nạp library vào nên nó không hỗ trợ các ver khác nhau của cad. Có cách nào không dùng library của cad mà vẫn gọi được cad lên và vẽ bình thường không. Bác nào biết xin chỉ giúp! cảm ơn nhiều! 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
phantuhuong 227 Báo cáo bài đăng Đã đăng Tháng 10 12, 2008 Bác Phantuhuong có thể cho một ví dụ dùng VB.net vẽ một đoạn thẳng được không. Tôi đã thử rồi mà không làm được. Để mở Cad ra vẽ thì tôi dùng đoạn mã: Public vAcadApp As Autodesk.AutoCAD.Interop.AcadApplication vAcadApp = New Autodesk.AutoCAD.Interop.AcadApplication vAcadApp.Visible = True nhưng để dùng được cái này thì phải nạp library vào nên nó không hỗ trợ các ver khác nhau của cad. Có cách nào không dùng library của cad mà vẫn gọi được cad lên và vẽ bình thường không. Bác nào biết xin chỉ giúp! cảm ơn nhiều! Tôi chưa thử nhưng bạn thử thay đối tượng đó bằng Object xem thế nào. 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