Hiển thị các bài đăng có nhãn Di động. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Di động. Hiển thị tất cả bài đăng

Thứ Sáu, 3 tháng 12, 2010

Khung lisp di động để bạn phát triển.

Đây là Bài viết của mình bên CADVIET.COM chủ đề này cũng nhiều bạn quan tâm nên đem về đăng lun trên blog mình.
Nguyên văn câu hỏi:

Trích dẫn(nguoi_tho_mo @ Nov 18 2010, 10:45)
Bác duy782006 và các cao thủ làm một mẫu "tien ich cv" đơn giản, có các loại foder: DWG, LSP, HETHONG, THVIEN...
mỗi foder chỉ nên có 1-vài file làm ví dụ cụ thể. khi muốn update, bổ xung lisp mới thì làm như thế nào?
nên viết bằng lsp không mã hóa để người dùng hiểu một phần + bổ xung + hoàn thiện.
Mục đính: nhiều người mới bắt đầu có thể tự làm dc tiện ích nho nhỏ cho mình và share lên diễn đàn.


Và đây là bài viết của mình:

Theo ý của bạn mình làm 1 cái khung đơn giản để bạn tự phát triển:
Mình tổ chức thư mục LISPDD chứa các thư mục con như sau:
-RUN: thư mục này chứa 3 file lisp khởi đầu dùng load menu, thiết lập đường dẩn và các việc cần thiết ban đầu.
-DCL: Chứa 1 file dcl ví dụ và các file text + sld dùng cho hiển thị hộp thoại này.
-CHEPTHEM: thư mục này có đặc điểm là sau khi load lisp bạn gỏ lệnh CAPNHAT thì các file chứa trong thư mục này được copy vào thư mục cài đặtcủa cad.
-AUTOADD: thư mục này sẽ được tự động add thêm vào đường dẩn tìm kiếm của cad sau khi bạn load lisp.
-LISP: thư mục này hiện chứa 3 lisp ví dụ, các lisp của bạn cũng nên tập trung vào đây để quản lý và load cho dể kiểm soát.
-HETHONG: hiện nay chứa file mns dùng hiển thị menu.

*Cách dùng:
Để chạy bộ này có 2 cách:
-Di động: Load file lispdd/run/didong.lsp. nó hỏi chỉ file duy.ico bạn chỉ cho nó lúc này nemu, lisp sẳn có sẽ được load lên để bạn dùng thử.
-Cố định:Trước tiên phải copy toàn bộ thư mục lisddd vào ổ C xong Load file lispdd/run/codinh lúc này nemu, lisp sẳn có sẽ được load lên để bạn dùng thử.
*Cách chỉnh sửa và thêm lisp, menu.
Sau khi load thành công thì thư mục AUTOADD sẽ được thêm vào đường dẩn tìm kiếm của cad nên nếu bạn có file nào cần dùng cho lisp mà ko muốn chỉ định đường dẩn trong lisp thì chứa nó trong thư mục này.
Lệnh HETHONG dùng copy toàn bộ các file trong thư mục CHEPTHEM vào thư mục cài đặt của cad chức năng này dùng khi bạn có 1 số file cần cập nhật mới ví dụ như line, hatch .v.v. (khi nào gỏ lệnh HETHONG thi mới thực hiện chức năng này nếu ko dùng đến thì ko gỏ lệnh này là xong).
-Cách thêm lisp vào: Bạn mở file lispdd/run/goilenh.lsp, bên dưới đoạn
(load(strcat odiachay "/lispdd/lisp/lisp1"))
(load(strcat odiachay "/lispdd/lisp/lisp2"))
(load(strcat odiachay "/lispdd/lisp/lisp3"))
bạn thêm 1 dòng:
(load(strcat odiachay "/lispdd/lisp/lisp4"))
Lưu ý lisp4 là tên lisp thêm vào không cần phần .lsp nhé. Muốn thêm nhiều lisp thì thêm nhiều dòng.
-File menu thì sửa trong lispdd/hethong/lispdd.mns. File này mình viết đơn giản gồm 3 dòng đôn và 1 nemu xếp lớp đọc cái hiểu ngay nên chắc ko cần hướng dẩn chỉnh file này. Sau khi chỉnh xong thì xóa file lispdd.cui đi để khi khởi động cad sẽ load lại nemu (nó tự load bạn ko phải load).


Thứ Hai, 7 tháng 6, 2010

Cách làm 1 bộ lisp di động.

*Bạn có trong tay một bộ lisp ưng ý và dùng đã quen. Đôi lúc bạn ngồi 1 máy khác cảm thấy rất bất tiện, cài lisp của mình vào thì sợ ảnh hưởng đến người khác.
*Mình cũng bị tình trạng này và đến nay đã tìm ra cách giải quyết nên khoe với mọi người. Cách này mình gọi là lisp di động.
-Nhiều bạn sẽ nghỉ lisp thì để đâu cũng không quan trọng chỉ cần load lên thôi có gì phải tinh vi,,,,,,,,,,, Vấn đề là lisp nhiều khi không đơn thuần chỉ là các file lisp mà còn rất nhiều thứ kèm theo ví dụ:
+File dwg dùng chèn vào phục vụ nhu cầu nào đó của lisp.
+File dcl dùng hiển thị hộp thoại.
+Các file sld dùng cho hộp thoại và các mục đích trang trí, minh họa khác.
Nói chung là có rất nhiều loại file kèm theo cần phải dùng trong ứng dụng lisp.

-Thông thường người viết lisp có hai cách ứng xử với các file này:
+Chỉ đích danh file với đầy đủ đường dẩn ví dụ:
(command ".INSERT" "C:\\tienich\\dwg\\cott.dwg" (list (car a)(cadr a)) 1 1 0)
+Chỉ tên file không có đường dẩn và tạo Support File Search Path đến thư mục chứa file ví dụ:
(command ".INSERT" "cott.dwg" (list (car a)(cadr a)) 1 1 0)
Và Add thư mục C:\\tienich\\dwg\\ vào Support File Search Path.
-Cả hai trường hợp trên phù hợp khi lisp nằm cố định trên máy. Bây giờ bạn chép tất cả vào CD hoặc USB để đem nó đi máy khác thì đường dẩn sẽ không còn ổn định (mổi máy mổi khác) Tôi xin trình bày cách mà tôi áp dụng cho ứng dụng lisp của mình như sau:

-Tổ chức một thư mục tổng (tôi đặt tên tienich).Bên trong là các thư mục con theo từng loại file (để dể kiểm soát) ví dụ tôi đặt như sau:
+DWG
+DCL
+LENH
+FLIEHETHONG

-Tạo 1 file bất kỳ tốt nhất nên là file có định dạng đặt biệt chút cho đở nhầm lẩn (trường hợp của tôi là file DUY.ICO). Đặt file này trong thư mục tổng ví dụ: tienich\\duy.ico. Tác dụng của file này tôi sẽ trình bày phía dưới.
-Cải tạo tất cả các dòng trong lisp có liên quan đến file bên ngoài như sau:

(start_image "img_1")
(slide_image 0 0 (dimx_tile "img_1")(dimy_tile "img_1") (strcat odiachay "\\tienich\\dcl\\lgoduy.sld"))
(end_image)

(setq DCL_ID (load_dialog (strcat odiachay "\\tienich\\dcl\\VEKHOIDAC.DCL")))

(command "INSERT" (strcat odiachay "\\tienich\\dwg\\cos") (list (car p0cos)(cadr p0cos)) 1 1 0)

Nghĩa là cần phải xác định biến odiachay thì các dường dẩn đến file mới hoàn thiện.
-Tạo file lisp để khi load lên sẽ làm tất cả các bước sau:
+Xác định biến odiachay.
+Load tất cả các file lsp cần load.
Nội dung như sau:

(setq vitrifilekiemtraduongdan (getfiled "DE XAC DINH DUONG DAN BAN HAY CHON FILE DUY.ICON " "" "ico" 0))
(setq dodaiduongdantienichdocduoc (strlen vitrifilekiemtraduongdan))
(setq dodaiduongdantienichdocduoctru (- dodaiduongdantienichdocduoc 16))
(setq tenodiachay (substr vitrifilekiemtraduongdan 1 dodaiduongdantienichdocduoctru))
(setq odiachay tenodiachay)

(load(strcat odiachay "/tienich/lenh/thuvienndung"))
(load(strcat odiachay "/tienich/lenh/thuvienchitiet"))
(load(strcat odiachay "/tienich/lenh/tienichchonht"))
(load(strcat odiachay "/tienich/lenh/thongke"))


Phần màu xanh dùng để load các file lisp.
Phần màu cam dùng xác định biến odiachay cách làm việc như sau:
+Hiển thị hộp thoại open file với tiêu đề DE XAC DINH DUONG DAN BAN HAY CHON FILE DUY.ICON, định dạng file mặc định là file *.ico.
+Đọc ra đường dẩn đầy đủ của file DUY.ICO.
+Đếm số ký tự trong chuổi vừa thu được.
+Trừ số ký tự đi 16 (là số ký tự của chuỗi tienich\\duy.ico).
+Lấy giá ra chuỗi con của chuổi tên file đầy đủ từ vị trí đầu tiên đến vị trí thứ đã trừ đi 16.
Giá trị này chính là biến odiachay.

*Tất nhiên có nhiều cách hay hơn để làm việc lisp di động này nhưng mình làm được như vậy và dùng thấy rất ổn nên giới thiệu lên đây mong giúp được cho nhửng bạn đang bị vướng vấn đề như mình.
*Tham khảo sản phẩm ở Đây!

Thứ Năm, 17 tháng 9, 2009

Lisp di động.

Sau thời gian giới thiệu bộ lisp tổng hợp TLKT và được sự quan tâm sử dụng của các bạn. Bản thân mình và chắc cả các bạn nửa sẽ thấy bất tiện khi thay đổi nơi làm việc nhất là khi làm việc tạm thời tại máy nào đó thì không thể cài cái TLKT vào.
Từ nhu cầu thực tế mình đã có giải pháp là tạo ra bộ lisp di động có khả năng chạy trên cả USB và CDROM. Thực chất đây là nguyên bản của bộ TLKT và mình liên tục chỉnh sửa, cập nhật nên các tiện ích mà TLKT có thì hắn cũng có và có thêm vài cái mới các bạn dùng và tự khám phá thêm trong phần giới thiệu của mình. Mình đặt tên hắn là TIENICH.
Cách dùng như sau:
-Bạn load về và giải nén thành thư mục TIENICH và copy vào USB, CDROM hoặc bất kỳ chổ nào trong máy theo nguyên tắc: tất cả tên các thư mục dẩn đến TIENICH điều không được chứa khoảng trắng.
-Khi dùng gỏ lệnh AP, chọn đến ……tienich\run\chay\chay.lsp và load nó lên, xuất hiện bảng như này yêu cầu bạn chọn file duy.ico mục đích để cad biết cái TIENICH hắn nằm ở đâu.


Photobucket



-Bạn chọn đến ……tienich\duy.ico và chọn open.
-Xong rồi ế bạn lúc này xuất hiện bảng giới thiệu như này (màu mè quảng cáo tí)


Photobucket



-Đây là bảng lệnh chính từ đây bạn có thể đi đến tất cả các chức năng có trong bộ lisp này.


Photobucket



-Lưu ý:
+Khi load bằng cách này thì lisp chỉ chạy trong phiên làm việc này thôi lần khác hoặc mở bản vẽ khác thò phải load lại.
+Line và hatch sẽ không tự động cập nhật, nếu muốn cập nhật line và hatch thì bạn gỏ lệnh HETHONG và nhập pass là 00 (hai số không).
Chào thân ái và quyết thắng!