Đến nội dung


Hình ảnh
- - - - -

Làm cách nào load hàm lisp ở dạng chuỗi


  • Please log in to reply
4 replies to this topic

#1 tdvn

tdvn

    biết lệnh rotate

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

Đã gửi 04 April 2009 - 01:24 AM

Thýờng thì ta viết lisp trong một file text sau ðó dùng hàm load ðể load file ðó lên và thực hiện lệnh trong ðó hoặc có thể ðối với những hàm ðõn giản ta ðánh ngay trên dòng lệnh cad. Ví dụ :
command: (DEFUN C:TTT() (SETQ P '(2 3)) (COMMAND "_.TEXT" P 2 0 "123"))
thì ta sẽ ðýợc lệnh "TTT".
Giả sử tôi nhớ chuỗi sau vào biến st nhý sau (setq st "(DEFUN C:TTT() (SETQ P '(2 3)) (COMMAND "_.TEXT" P 2 0 "123"))")
Thông qua biến st, làm cách nào cho cad hiểu ðýợc tôi muốn gởi ðến một hàm chứ không phải một chuỗi. Mục ðích ðể thực hiện lệnh TTT nhý trên.
Bác nào biết cách chỉ giúp. Xin cám õn
  • 0

#2 q288

q288

    biết lệnh fillet

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

Đã gửi 06 April 2009 - 03:59 PM

Thýờng thì ta viết lisp trong một file text sau ðó dùng hàm load ðể load file ðó lên và thực hiện lệnh trong ðó hoặc có thể ðối với những hàm ðõn giản ta ðánh ngay trên dòng lệnh cad. Ví dụ :
command: (DEFUN C:TTT() (SETQ P '(2 3)) (COMMAND "_.TEXT" P 2 0 "123"))
thì ta sẽ ðýợc lệnh "TTT".
Giả sử tôi nhớ chuỗi sau vào biến st nhý sau (setq st "(DEFUN C:TTT() (SETQ P '(2 3)) (COMMAND "_.TEXT" P 2 0 "123"))")
Thông qua biến st, làm cách nào cho cad hiểu ðýợc tôi muốn gởi ðến một hàm chứ không phải một chuỗi. Mục ðích ðể thực hiện lệnh TTT nhý trên.
Bác nào biết cách chỉ giúp. Xin cám õn


Tôi thấy nếu viết như sau thì cad cũng hiểu st là một hàm:
(setq st (DEFUN C:TTT() (SETQ P '(2 3)) (COMMAND "_.TEXT" P 2 0 "123")))
Có phải ý bạn là như vậy không?
  • 0

#3 tdvn

tdvn

    biết lệnh rotate

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

Đã gửi 06 April 2009 - 04:26 PM

Tôi thấy nếu viết nhý sau thì cad cũng hiểu st là một hàm:
(setq st (DEFUN C:TTT() (SETQ P '(2 3)) (COMMAND "_.TEXT" P 2 0 "123")))
Có phải ý bạn là nhý vậy không?

Cám õn bạn nhýng không phải nhý vậy. Do công việc của tôi hay phải xử lý nhiều file cõ bản giống nhau. Ví dụ tôi muốn thêm hay thay ðổi một cái gì ðó thông qua lisp và chỉ dùng một lần rồi thôi. Nếu viết vào một file thì cũng không cần thiết nên tôi thýờng gọi một chýõng trình nhỏ trong ðó có chức nãng soạn thào vãn bản, tôi viết vào ðó và gởi dữ liệu về cho cad dýới dạng text. Và tôi muốn làm sao cho cad hiểu ðýợc là tôi muốn gởi một hàm. Vì tôi nghĩ cad ðọc file lisp cũng dýới dạng những dòng text thôi. Phải có một hàm týõng tự hàm load nhýng ðối số là một chuỗi chứ không phải một file.
  • 0

#4 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 06 April 2009 - 05:26 PM

bạn sử dụng mã lệnh:
(eval (read st))

  • 2

#5 tdvn

tdvn

    biết lệnh rotate

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

Đã gửi 06 April 2009 - 05:37 PM

bạn sử dụng mã lệnh:

(eval (read st))

Đúng rồi! Thế mà tôi nghĩ mãi không ra. Cám ơn bạn rất nhiều.
  • 0