Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
10 replies to this topic

#1 quochuyksxd

quochuyksxd

    biết lệnh fillet

  • Members
  • PipPipPipPip
  • 201 Bài viết
Điểm đánh giá: 24 (tàm tạm)

Đã gửi 13 March 2013 - 04:21 PM

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.


  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 13 March 2013 - 04:38 PM

Bạn thử Field chưa ? Đơn giản thôi mà ^^


  • 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


#3 quochuyksxd

quochuyksxd

    biết lệnh fillet

  • Members
  • PipPipPipPip
  • 201 Bài viết
Điểm đánh giá: 24 (tàm tạm)

Đã gửi 13 March 2013 - 04:46 PM

Cho mình hỏi là khi mình sử dụng field thì ngày tháng được chèn lại không đúng với ngày hiện tại trong hệ thống??


  • 0

#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 13 March 2013 - 04:50 PM

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))))

  • 5

* 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.


#5 quochuyksxd

quochuyksxd

    biết lệnh fillet

  • Members
  • PipPipPipPip
  • 201 Bài viết
Điểm đánh giá: 24 (tàm tạm)

Đã gửi 13 March 2013 - 04:53 PM

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. 


  • 0

#6 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 13 March 2013 - 06:00 PM

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 ^^
  • 1

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


#7 quochuyksxd

quochuyksxd

    biết lệnh fillet

  • Members
  • PipPipPipPip
  • 201 Bài viết
Điểm đánh giá: 24 (tàm tạm)

Đã gửi 14 March 2013 - 10:36 AM

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 


  • 0

#8 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 14 March 2013 - 10:41 AM

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


  • 1

#9 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 14 March 2013 - 11:40 AM

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.


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#10 quochuyksxd

quochuyksxd

    biết lệnh fillet

  • Members
  • PipPipPipPip
  • 201 Bài viết
Điểm đánh giá: 24 (tàm tạm)

Đã gửi 14 March 2013 - 02:38 PM

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ê.


  • 0

#11 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 14 March 2013 - 05:37 PM

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 đó..........


  • 1