Đến nội dung


Hình ảnh
- - - - -

lisp di động


  • Please log in to reply
21 replies to this topic

#1 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 04 September 2008 - 08:24 AM

*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.
@Nhân tiện mình giới thiệu kèm theo tiện ích của mình để các bạn xem cách hoạt động của lisp di động.
-Bạn giải nén và ghi thư mục tienich lên CD hoặc USB (gì cũng được).
-Khởi động CAD (cad gì cũng được).
-Gỏ lệnh AP chọn tienich//run//chay//chay.lsp load lên nó sẻ hỏi bạn chỉ chổ file DUY.ICO bạn chỉ cho nó và xem nó load toàn bộ các lisp củng như khả năng hiển thị các hộp thoại, gọi menu không khác gì các chương trình cài đoàng hoàng và khi bạn rút CD hoặc USB đi thì không còn dấu vết gì nửa không ảnh hưởng tới ai. Chúc thành công.


http://www.cadviet.c...s/tienich_2.rar
  • 3

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#2 anh.tuan

anh.tuan

    biết lệnh extend

  • Members
  • PipPipPip
  • 196 Bài viết
Điểm đánh giá: 35 (tàm tạm)

Đã gửi 04 September 2008 - 10:35 AM

*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.
@Nhân tiện mình giới thiệu kèm theo tiện ích của mình để các bạn xem cách hoạt động của lisp di động.
-Bạn giải nén và ghi thư mục tienich lên CD hoặc USB (gì cũng được).
-Khởi động CAD (cad gì cũng được).
-Gỏ lệnh AP chọn tienich//run//chay//chay.lsp load lên nó sẻ hỏi bạn chỉ chổ file DUY.ICO bạn chỉ cho nó và xem nó load toàn bộ các lisp củng như khả năng hiển thị các hộp thoại, gọi menu không khác gì các chương trình cài đoàng hoàng và khi bạn rút CD hoặc USB đi thì không còn dấu vết gì nửa không ảnh hưởng tới ai. Chúc thành công.


http://www.cadviet.c...s/tienich_2.rar

Cảm ơn bác Duy nhiều nhé, nhưng mình hơi thắc mắc là khi chạy chương trình trên usb thì một số lện tắt mà mình đã đặt trước đây nay mất tác dụng, bác cho biết cách khắc phục, ở phần thống kê cốt thép có lổi font và tỉ lệ cũng như hình vẽ không được đẹp lắm. Mong bác vui lòng cho mình câu trả lời. thanks alot!!!
  • 0

#3 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 04 September 2008 - 10:54 AM

Cảm ơn bác Duy nhiều nhé, nhưng mình hơi thắc mắc là khi chạy chương trình trên usb thì một số lện tắt mà mình đã đặt trước đây nay mất tác dụng, bác cho biết cách khắc phục, ở phần thống kê cốt thép có lổi font và tỉ lệ cũng như hình vẽ không được đẹp lắm. Mong bác vui lòng cho mình câu trả lời. thanks alot!!!

-Cái này là tôi khoe cái mà mình hay dùng mà. Khi rút ra rồi thì lệnh tắt của bạn loại quay về như cũ thôi.
-Tôi dùng font VNI.*** nếu lổi là vì tôi và bạn không thống nhất cách dùng font thôi.
-Vẽ không được đẹp là vì tôi vẽ xấu đó mà. chịu thôi khả năng mình có vậy.
**Mục đích bài này chủ yếu là giúp các bạn cải tạo bộ lisp của các bạn thành di động thôi. cái của tôi chỉ là minh họa thôi.
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#4 nguoi_tho_mo

nguoi_tho_mo

    biết vẽ arc

  • Members
  • PipPip
  • 41 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 18 November 2010 - 10:45 AM

Chủ đề này vip mà sao ít hoạt động thế nhỉ, hay chuyển sang topic khác rồi
Nhờ bác duy782006 và mọi người hâm nóng lên nhé.
1. Bộ tiện ích của bác duy782006 tương đối hoàn hảo rồi nhưng khó modified theo thói quen người dùng.
2. 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.
Có gì mạo phạm mong các đàn anh tha thứ
  • 0

#5 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 18 November 2010 - 03:16 PM

Thực ra, bạn chỉ cần chép file "chay.lsp" vào thay file "duy.ico" và cho tải luôn là được. Làm như vậy còn đơn giản hơn
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#6 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 18 November 2010 - 04:09 PM

Thực ra, bạn chỉ cần chép file "chay.lsp" vào thay file "duy.ico" và cho tải luôn là được. Làm như vậy còn đơn giản hơn

Giỡn nà. Làm dzậy rồi làm sao xác định các đường dẩn cho file bạn. Khi bạn lưu nó trong USB chẳng hạn ở máy này thì nó là ổ E nhưng máy khác nó là ổ F thì làm nào?
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#7 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 18 November 2010 - 04:11 PM

Chủ đề này vip mà sao ít hoạt động thế nhỉ, hay chuyển sang topic khác rồi
Nhờ bác duy782006 và mọi người hâm nóng lên nhé.
1. Bộ tiện ích của bác duy782006 tương đối hoàn hảo rồi nhưng khó modified theo thói quen người dùng.
2. 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.
Có gì mạo phạm mong các đàn anh tha thứ

-Hôm nào mínheẽ làm theo ý 2 của bạn.
-Lisp của mình toàn nguyên si đấy có mã hóa cài gì đâu mừ?
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#8 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 18 November 2010 - 08:52 PM

Bạn đã tìm được đường dẫn của file Duy.ico, vậy tại sao không tìm được đường dẫn của file Chay.lsp? Khi đó viết thêm 1 câu lệnh để tải file Chay.lsp luôn. OK?
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#9 nguoi_tho_mo

nguoi_tho_mo

    biết vẽ arc

  • Members
  • PipPip
  • 41 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 18 November 2010 - 10:14 PM

-Hôm nào mínheẽ làm theo ý 2 của bạn.
-Lisp của mình toàn nguyên si đấy có mã hóa cài gì đâu mừ?

Cám ơn bác Duy782006 nhiều :iluvyousmiley:
Em sẽ chờ đợi thành quả của bác và các anh em trên diễn đàn
  • 0

#10 nguoi_tho_mo

nguoi_tho_mo

    biết vẽ arc

  • Members
  • PipPip
  • 41 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 02 December 2010 - 05:56 PM

-Hôm nào mínheẽ làm theo ý 2 của bạn.
-Lisp của mình toàn nguyên si đấy có mã hóa cài gì đâu mừ?

Anh Duy bớt chút thời gian vào gúp em với
Cảm ơn anh
  • 0

#11 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 02 December 2010 - 11:48 PM

Anh Duy bớt chút thời gian vào gúp em với
Cảm ơn anh

Hẹn bạn tuần tới tại dạo này mình bị ngập việc quá lên dd dòm ngó thì được chứ viết ra khung thì cũng phải suy nghĩ cho nó tổng quát 1 chút.
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#12 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 03 December 2010 - 10:35 PM

http://www.cadviet.c...es/3/lispdd.rar
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).
  • 3

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#13 thk143

thk143

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 04 December 2010 - 10:49 AM

http://www.cadviet.c...es/3/lispdd.rar
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).

Thanks bác em đánh để e thử xem sao
  • 0

#14 nguoi_tho_mo

nguoi_tho_mo

    biết vẽ arc

  • Members
  • PipPip
  • 41 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 06 December 2010 - 01:42 AM

Hẹn bạn tuần tới tại dạo này mình bị ngập việc quá lên dd dòm ngó thì được chứ viết ra khung thì cũng phải suy nghĩ cho nó tổng quát 1 chút.

Cảm ơn anh nhiều, măm mới tết đến rồi. cv ai cũng gấp rút.
Em sẽ làm theo hướng dẫn của anh và dùng như thế vì anh còn nhiều việc khác nên ko dám hỏi thêm nữa ,
khi nào em nghiên cứu dc nhiều nhiều một chút sẽ share lên diễn đàn
Chúc anh vui vẻ
  • 0

#15 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 15 August 2011 - 06:33 AM

Giỡn nà. Làm dzậy rồi làm sao xác định các đường dẩn cho file bạn. Khi bạn lưu nó trong USB chẳng hạn ở máy này thì nó là ổ E nhưng máy khác nó là ổ F thì làm nào?

Chào anh Duy.
Cái này anh có thể làm như vầy:
1. Đặt 1 tên file gì đó do mình đặt ra trong USB. Ví dụ là file: DUY782006.ico trong USB chẳng hạn
2. Bắt đầu tìm file DUY782006.ico trong ổ đĩa Z -> Cho tới đĩa C (Sử dụng vòng lặp While, hàm findfile và hàm chr nữa. Nếu không tìm thấy thì hàm findfile trả về NIL.

Đến khi nào tìm thấy file DUY782006.ico thì dừng lại. Lấy tên của ổ đĩa
Và ổ đĩa đó chính là USB mà anh đang sử dụng
  • 0

#16 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 15 August 2011 - 07:22 AM

Ý, bác Tuệ đào mộ giải đáp bài từ ... năm ngoái, ta nhảy vào chém gió thôi ^^
- E thì nghĩ ngoài ra có thể lấy luôn list USB và thao tác cho ít. Nếu trong lúc đó máy chỉ có 1 mình USB thì đúng là của mình rùi, load all luôn ^^. Hoặc nếu dùng vòng lặp thì tại sao không chạy từ A chạy đi ạ ?
- Ngoài ra có thể dùng vl-file-directory-p kiểm tra 1 ổ đĩa đã tồn tại hay chưa, mount => load all ^^
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#17 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 15 August 2011 - 07:37 AM

Ý, bác Tuệ đào mộ giải đáp bài từ ... năm ngoái, ta nhảy vào chém gió thôi ^^
- E thì nghĩ ngoài ra có thể lấy luôn list USB và thao tác cho ít. Nếu trong lúc đó máy chỉ có 1 mình USB thì đúng là của mình rùi, load all luôn ^^. Hoặc nếu dùng vòng lặp thì tại sao không chạy từ A chạy đi ạ ?
- Ngoài ra có thể dùng vl-file-directory-p kiểm tra 1 ổ đĩa đã tồn tại hay chưa, mount => load all ^^

Vì mỗi máy có ổ đĩa phân vùng mỗi khác,
Mình chạy từ Z->A là vì sợ bị trùng file. Lỡ ổ C, D có file trùng hoá ra là chưa đúng.
Cẩn tắc vô sai vậy :rolleyes:
- Nếu sử dụng vl-file-directory-p cũng được , nhưng phải duyệt từ Z-> A nếu không thì CDROM chưa "đút" vô thì (vl-file-directory-p CDROM) trả về NIL tức khắc
  • 0

#18 Detailing

Detailing

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 667 Bài viết
Điểm đánh giá: 278 (khá)

Đã gửi 15 August 2011 - 08:24 AM

Sao ko để file chay.lsp ở ngoài cùng rồi xài cái lisp lấy đường dẫn file vừa load đâu đó trên diễn đàn đấy mình nghĩ cũng nhanh mà
  • 0

Ideas don't matter, execution does!

1908412_308002392716743_8165279281236341


#19 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 15 August 2011 - 08:34 AM

Ồ, chí lý chí lý. Vậy thì ta list luôn Drive ra, rồi làm việc theo cách nào cũng được, kiểu như :
(defun ST:File-GetDrives(/ objFileSystemObject objDrives lstDrives)
(setq objFileSystemObject (vlax-create-object "Scripting.FileSystemObject")
lstDrives '()
)
(if (vlax-method-applicable-p objFileSystemObject 'Drives)
(princ "Method available")
)
(if (vlax-property-available-p objFileSystemObject 'Drives)
(progn
(setq objDrives (vlax-get-property objFileSystemObject 'Drives))
(vlax-for n objDrives
(setq lstDrives (append lstDrives (list (vlax-get-property n 'DriveLetter))))
)
(vlax-release-object objDrives)
)
)
(vlax-release-object objFileSystemObject)
lstDrives
)
^^ Hàm trên cũng có thể thay đổi 1 chút để lấy list USB
P/s : E góp ý cho vui thôi, chứ theo e thêm 1 bước Getfield cũng không phiền :)
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#20 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 15 August 2011 - 08:38 AM

Sao ko để file chay.lsp ở ngoài cùng rồi xài cái lisp lấy đường dẫn file vừa load đâu đó trên diễn đàn đấy mình nghĩ cũng nhanh mà

Cũng là 1 hướng. Kết hợp với hàm Loadall là okie, tuy nhiên hàm lastload bác ĐVH post chưa được mọi người kiểm chứng nhiều ạ :)
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC