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.
Đăng nhập để thực hiện theo  
quochuyksxd

[Hỏi] Cần lisp chèn thời gian

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

quochuyksxd    24

Các bác cao thủ lisp có thể lập ra 1 lisp chèn thời gian như hàm Now() của excel vào text có sẵn không?

Yêu cầu:

-Đánh lệnh time sẽ có 2 lựa chọn:

          1.chèn ngày tháng định dạng dd/mm/yyyy: VD: 12/12/2012

          2.chèn ngày tháng định dạng dd/mm/yyyy và thời gian định dạng hh:mm: VD: 12/12/2012 22:15

-Chọn text (dtxext hoặc mtext) cần chè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
Doan Van Ha    2.676

Có thể dùng field như anh Ketxu nói để ngày tháng có thể update được.

Còn muốn cố định chúng và muốn dùng lisp thì quick code cho bạn đây:


;Doan Van Ha - CADViet.com - Ngay 13/3/2013.

;Chuc nang: Chen ngay thang vao *TEXT.
;Ghi chu:
;Kieu 1: 13/3/2013
;Kieu 2: 13/3/2013 16:35
(defun C:HA( / lst kieu ent)
 (load "julian.lsp")
 (setq lst (jtoc (getvar "date")))
 (initget "1 2")
 (setq kieu (getkword "\nChon kieu chen [1/2] <1>: "))
 (cond
  ((or (= kieu "1") (not kieu)) (setq txt (strcat (itoa (nth 2 lst)) "/" (itoa (nth 1 lst)) "/" (itoa (nth 0 lst)))))
  (T (setq txt (strcat (itoa (nth 2 lst)) "/" (itoa (nth 1 lst)) "/" (itoa (nth 0 lst)) " " (itoa (nth 3 lst)) ":" (itoa (nth 4 lst))))))
 (while (or (not (setq ent (car (entsel "\nChon 1 Text hoac Mtext: ")))) (not (wcmatch (cdr (assoc 0 (entget ent))) "*TEXT"))))
 (entmod (subst (cons 1 txt) (assoc 1 (entget ent)) (entget ent))))
  • Vote tăng 5

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
quochuyksxd    24

Oh, cảm ơn bác Doan Van Ha quá, đúng với ý mình rồi. Nhưng góp ý với bác sửa chỗ chọn 1/2 cho rõ ra 1 chút kẻo người khác muốn sử dụng lại không biết. he. 

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
ketxu    2.651

Khó hiểu thay cho câu hỏi của bạn . Now() là hàm được cập nhật thời gian. Field cũng vậy. Bạn đã chắc dùng 2 thứ này ? Lisp bác H viết là cố định, hay đơn thuần là một text, không thay đổi theo tjan, bác ấy cũng ghi rất rõ. vậy mà bạn chốt đúng ý bạn thì bạn nên sửa lại câu hỏi đầu bài đi thui ^^

Mà để cảm ơn thiết thưc hơn bạn nên kick nút thanks ở bài bác ấy nhé

p/s : để tks bác H ket lại phải chuyển sang web ver này ^^

  • 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
quochuyksxd    24

Thực ra trong lúc mình vội vàng nền cũng chưa suy nghĩ dc hết câu hỏi. nhưng sau khi bác Hà lập lisp trên thì mình thấy hợp lý hơn là dùng như hàm now() như excel. Mục đích của mình là chèn ngày hoàn thành bản vẽ (vd là ngày hôm nay) thì ngày mai mở bản vẽ ra là ngày hôm qua hoàn thành chứ không phải lại là hôm nay được.

Lần sau sẽ rút kinh nghiệm khi hỏi, dù sao cũng cảm ơn 2 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
Tue_NV    3.841

Thực ra trong lúc mình vội vàng nền cũng chưa suy nghĩ dc hết câu hỏi. nhưng sau khi bác Hà lập lisp trên thì mình thấy hợp lý hơn là dùng như hàm now() như excel. Mục đích của mình là chèn ngày hoàn thành bản vẽ (vd là ngày hôm nay) thì ngày mai mở bản vẽ ra là ngày hôm qua hoàn thành chứ không phải lại là hôm nay được.

Lần sau sẽ rút kinh nghiệm khi hỏi, dù sao cũng cảm ơn 2 bác 

 

Nếu vậy thì bạn có thể dùng Field (Chọn SaveDate) -> Nếu hoàn thành thì phải Save 

Mục đích y như lời bạn nói là chèn ngày hoàn thành bản vẽ

Trong field còn có : CreatDate : ngày tạo ra bản vẽ 

Date : Ngày thay đổi theo thời gian, tương tự như hàm Now() trong Excel

  • 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
phamthanhbinh    3.123

Thực ra trong lúc mình vội vàng nền cũng chưa suy nghĩ dc hết câu hỏi. nhưng sau khi bác Hà lập lisp trên thì mình thấy hợp lý hơn là dùng như hàm now() như excel. Mục đích của mình là chèn ngày hoàn thành bản vẽ (vd là ngày hôm nay) thì ngày mai mở bản vẽ ra là ngày hôm qua hoàn thành chứ không phải lại là hôm nay được.

Lần sau sẽ rút kinh nghiệm khi hỏi, dù sao cũng cảm ơn 2 bác 

Hề hề hề,

Theo thiển ý của mình thì cái lisp của bác DoanVanHa chưa hẳn đã đúng với yêu cầu của bạn. Bạn yêu cầu chèn, còn lisp của bác DoanVanHa là thay thế. Cái chèn này có thể là chèn thêm vào phía trước, phía sau hay vào giữa đoạn text có sẵn chứ không hẳn chỉ là chèn đè nghiến lên thằng text cũ như việc thay thế.

Vậy nên có nhẽ bạn cũng nên rít kinh nghiệm về việc trình bày sao cho người khác dễ hiểu đúng ý bạn 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
quochuyksxd    24

Mình thấy bác Hà làm đúng yêu cầu của mình đó chứ. vấn đề ở đây là mỗi người một cách hiểu nên thành ra cũng phức tạp. mình trình bày có vẽ như chưa rõ lắm nhưng bác Hà lại làm đúng như ý mình nghĩ. mà như vậy lại hợp lý.

Vì người chủ trì sẽ quyết định một ngày hoàn thành và chèn (ghi đè vào text sẵn có như mình yêu cầu) vào ngày hoàn thành vào bản vẽ và báo cáo với các bộ phận còn lại sửa đổi. Nếu cứ để thời gian update theo từng ngày, thì nếu mỗi người một công đoạn thiết kế (kiến trúc, kết cấu, điện, nước...)-->thời gian hoàn thành sẽ khác nhau--> sẽ cho ra một ngày khác nhau?! (sử dụng Field savedate như bác Tue_nv nói lại không đồng nhất được các bản vẽ)

Vấn đề của mình đơn giản ở chỗ là mục đích để chủ trì sẽ chèn vào ngày hoàn thành cuối cùngbáo các bộ phận khác sửa cho đúng thôi. thực ra nó chỉ tiết kiệm 1 chút ít thời gian nhìn đồng hồ hệ thống để đánh lại thui mà. hi. 

Tóm lại là nhác quá mà cần sử dụng lisp này các bác ah. hê hê hê. các bác thông cảm hê.

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
Tue_NV    3.841

Mình thấy bác Hà làm đúng yêu cầu của mình đó chứ. vấn đề ở đây là mỗi người một cách hiểu nên thành ra cũng phức tạp. mình trình bày có vẽ như chưa rõ lắm nhưng bác Hà lại làm đúng như ý mình nghĩ. mà như vậy lại hợp lý.

Vì người chủ trì sẽ quyết định một ngày hoàn thành và chèn (ghi đè vào text sẵn có như mình yêu cầu) vào ngày hoàn thành vào bản vẽ và báo cáo với các bộ phận còn lại sửa đổi. Nếu cứ để thời gian update theo từng ngày, thì nếu mỗi người một công đoạn thiết kế (kiến trúc, kết cấu, điện, nước...)-->thời gian hoàn thành sẽ khác nhau--> sẽ cho ra một ngày khác nhau?! (sử dụng Field savedate như bác Tue_nv nói lại không đồng nhất được các bản vẽ)

Vấn đề của mình đơn giản ở chỗ là mục đích để chủ trì sẽ chèn vào ngày hoàn thành cuối cùngbáo các bộ phận khác sửa cho đúng thôi. thực ra nó chỉ tiết kiệm 1 chút ít thời gian nhìn đồng hồ hệ thống để đánh lại thui mà. hi. 

Tóm lại là nhác quá mà cần sử dụng lisp này các bác ah. hê hê hê. các bác thông cảm hê.

 

Tại sao (sử dụng Field savedate như bác Tue_nv nói lại không đồng nhất được các bản vẽ vậy bạn?

Tue_NV thấy Ok. Sau này có chỉnh sửa thì chỉ cần mở bản vẽ, chỉnh lại ngày trong Hệ thống và Save lại thôi

Tiện hơn Lisp rất nhiều. Với Lisp, nếu cần chỉnh lại ngày hoàn thành bản vẽ, bạn phải thao tác từ đầu đó..........

  • 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  

×