Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
xuanthu189

Làm thế nào sử dụng file *.dvb như *.lsp!

Các bài được khuyến nghị

Các bác chỉ giùm em xem có cách nào đặt lệnh để chạy file ap của VBA như lisp ko?(Tức là ta ap file *.dvb rồi gõ lệnh trong cửa sổ command để chạy ứng dụng VBA ấy)!

Mong sớm hồi đáp!

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
Các bác chỉ giùm em xem có cách nào đặt lệnh để chạy file ap của VBA như lisp ko?(Tức là ta ap file *.dvb rồi gõ lệnh trong cửa sổ command để chạy ứng dụng VBA ấy)!

Mong sớm hồi đáp!

 

Cái này đã có trên diễn đàn rồi, bạn tìm kiếm nhé.

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
Cái này đã có trên diễn đàn rồi, bạn tìm kiếm nhé.

Em đọc rồi.Câc bác ấy làm rối tung hết cả lên.Cuối cùng e thử tất cả các cách ấy đều ko được.Giờ em vẫn đang mò mẫm đây.Bác phantuhuong biết thì chỉ giùm em cái!thanks bác trướ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
Em đọc rồi.Câc bác ấy làm rối tung hết cả lên.Cuối cùng e thử tất cả các cách ấy đều ko được.Giờ em vẫn đang mò mẫm đây.Bác phantuhuong biết thì chỉ giùm em cái!thanks bác trước

 

He he he,

KIến thức về LISP của tui rất bèo

về VBA có khá hơn chút đỉnh

Tui có viết một đoạn LISP load file dvb lên rồi chạy một macro trong file dvb

 

Tất nhiên là phải load lsp bình thường trước

 

_________________________

(defun c:sk()

(command "_-vbaload" "C:\\SK\\Input_Data.dvb") ; load file dvb, bác đổi đường dẫn cho phù hợp nhé

(princ)

(command "_-vbarun" "NHT_Main") ; chạy macro NHT_Main do tui viết trong dvb

(princ)

)

 

Tuy nhiên, chạy lần đầu thì không sao, lần thứ hai nó sẽ báo là file dvb đã được load , rất phiền nên tui làm theo kiểu nông dân

trước khi load dvb của mình tui đóng hết các dvb đang mở

 

 

----------------------

(defun Gvba ()

 

(vl-load-com) ;requires automation links

 

(if (and

 

;Drill down to the Projects object

(setq oApp (vlax-get-acad-object))

(setq oVBE (vla-get-vbe oApp))

(setq oProjs (vlax-get oVBE "VBProjects"))

)

 

;Loop through Projects object

(repeat (setq N (vla-get-count oProjs))

 

;get the item at position N

(setq oProj (vla-item oProjs N)

 

;get the name property,

;add it to the list.

Nams (cons

(list

(vlax-get oProj "Name")

(vlax-get oProj "FileName")

) Nams) N (1- N)))

)

 

; return list of names

Nams

 

);defun

 

(defun UNLOADALLVBA ()

 

(setq VBAProjs (Gvba))

 

(foreach VBAProj VBAProjs

 

(command "_VBAUNLOAD" (cadr VBAProj)))

)

; phần này tui viết

(defun c:sk()

(UNLOADALLVBA)

(command "_-vbaload" "C:\\SK\\Input_Data.dvb") ; load file dvb, bác đổi

(princ)

(command "_-vbarun" "NHT_Main")

(princ)

)

----------------------

 

 

Bác thử xem coi có được không nhé

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

Bạn nên add cả 2 file lisp và dvb vào mục startup suit của Application load của CAD, lúc đó file lisp chỉ cần 1 dòng gọi chạy macro :D

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

Có 1 điều em hơi thắc mắc là : có bắt buộc phải tạo marco mới chạy được VBA hay ko ? có cách nào để load dvb bình thường rồi chạy trực tiếp các hàm xử lý trong dvb đó ko ?

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

Thì bạn gõ vbarun rồi chọn module ^^ Nhưng như thế khéo còn lâu hơn tạo lệnh tắt từ lisp

  • Vote tăng 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

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×