Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
kame2211982

Xin giúp lisp ghi nhớ các biến vừa lập để dùng cho các bản vẽ sau này!

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

kame2211982    0

Chào các anh chị!

 Xin các anh chị giúp cho em lisp hay code dùng để ghi lại các biến em vừa nhập bản vẽ này để sau khi tắt cad mở lại thì các biến đó được update theo giá trị mới nhập lúc nãy!

 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
kame2211982    0

Ah, biến riêng của mình, ví dụ như mình làm bên điện muốn vẽ co thang cáp (elbow) có bán kính cong (bán kính này thay đổi được nhé) là 300mm chẳng hạn. Mình viết xong lisp vẽ bằng cách nhập bán kính rồi. nhưng qua bản khác hoặc tắt cad mở lại thì biến đó bị reset về nil rồi. Mình muốn biến này luôn là giá trị sau cùng được nhậ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
Tot77    501

Vậy bạn phải có 1 cái lsp đưa biến đó ra 1 file txt để dùng chung cho các bản vẽ cùng thư mục.

Và thêm 1 cái lsp khi mở bản vẽ mới thì load cái file đó và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
Tot77    501

Khi đưa ra bạn viết

 

(write-line (strcat (vl-princ-to-string 'bien1) "=" (rtos bien1)) file)

với bien1 là tên biến . Chú ý là có dau ' trước bien1

 

Khi đưa vào bạn viết:

 

 
(set (read (substr dong 1 (vl-string-search "=" dong)))
     (read (substr dong (+ 2 (vl-string-search "=" dong)))))
 

Chú ý là hàm set chứ không phải setq.

Dạng của 1 dòng trong file là 

bien1=300

 

Ở trên là các biến dạng integer, real, còn nếu là string thì hơi khác chút, chắc bạn cũng biết.

(set (read (substr dong 1 (vl-string-search "=" dong)))
     (read (substr dong (+ 2 (vl-string-search "=" dong)))))
  • 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
kame2211982    0

 

Khi đưa ra bạn viết

 

(write-line (strcat (vl-princ-to-string 'bien1) "=" (rtos bien1)) file)

với bien1 là tên biến . Chú ý là có dau ' trước bien1

 

Khi đưa vào bạn viết:

 

 
(set (read (substr dong 1 (vl-string-search "=" dong)))
     (read (substr dong (+ 2 (vl-string-search "=" dong)))))
 

Chú ý là hàm set chứ không phải setq.

Dạng của 1 dòng trong file là 

bien1=300

 

Ở trên là các biến dạng integer, real, còn nếu là string thì hơi khác chút, chắc bạn cũng biết.

(set (read (substr dong 1 (vl-string-search "=" dong)))
     (read (substr dong (+ 2 (vl-string-search "=" dong)))))

Cám ơn bạn nhiều lắm. Mình hiểu code rồi. Giờ mình đang viết lại hoàn chỉnh xem sao!

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


×