Đến nội dung


Hình ảnh
- - - - -

Ý nghĩa của mã lệnh lisp


  • Please log in to reply
3 replies to this topic

#1 hungpx2008

hungpx2008

    biết vẽ line

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

Đã gửi 17 August 2007 - 04:26 PM

Mình mới tiếp cận với lisp tuần trước. Cho mình hỏi ý nghĩa của cái code này cái. bác nào rảnh thì giúp nhé: (setq th (cdr (assoc 40 (tblsearch "style" stylebk)))
n 0
vậy thôi. thanks
  • 0

#2 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 17 August 2007 - 05:14 PM

Mình mới tiếp cận với lisp tuần trước. Cho mình hỏi ý nghĩa của cái code này cái. bác nào rảnh thì giúp nhé: (setq th (cdr (assoc 40 (tblsearch "style" stylebk)))
n 0
vậy thôi. thanks


Mã lisp của bạn sai cú pháp (thiếu 1 dấu ngoặc đơn và 2 dấu ngoặc kép).
Chính xác như sau:

(setq th (cdr (assoc 40 (tblsearch "style" "stylebk"))))

Ý nghĩa:
Lấy thông số Height của TextStyle có tên là stylebk và gán cho biến th. Nếu kiểu stylebk không tồn tại, th = nil
  • 0

#3 hungpx2008

hungpx2008

    biết vẽ line

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

Đã gửi 18 August 2007 - 10:01 AM

:unsure:

Mã lisp của bạn sai cú pháp (thiếu 1 dấu ngoặc đơn và 2 dấu ngoặc kép).
Chính xác như sau:

(setq th (cdr (assoc 40 (tblsearch "style" "stylebk"))))

Ý nghĩa:
Lấy thông số Height của TextStyle có tên là stylebk và gán cho biến th. Nếu kiểu stylebk không tồn tại, th = nil

THANK PÁC, MÌNH VẪN CHƯA HIỂU ASSOC 40 LÀ GÌ NHỈ. :unsure: :unsure:
  • 0

#4 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 18 August 2007 - 01:46 PM

:unsure:
THANK PÁC, MÌNH VẪN CHƯA HIỂU ASSOC 40 LÀ GÌ NHỈ. :unsure: :unsure:

Copy từ help:

(assoc element alist)
Searches an association list for an element and returns that association list entry

element: Key of an element in an association list.

alist: An association list to be searched.

Return Values:
The alist entry, if successful. If assoc does not find element as a key in alist, it returns nil.

Examples:

Command: (setq al '((name box) (width 3) (size 4.7263) (depth 5)))

((NAME BOX) (WIDTH 3) (SIZE 4.7263) (DEPTH 5))

Command: (assoc 'size al)

(SIZE 4.7263)

Command: (assoc 'weight al)

nil


Diễn nôm: tách lấy một thành phần trong danh sách liên hợp.
Do you understand?

Giải thích cái này nó sẽ... lòi ra cái khác! Để hiểu sâu sắc và triệt để, bạn cần chuẩn bị các kiến thức có liên quan về:
- list: danh sách, là kiểu dữ liệu rất cơ bản của lisp
- entity: thực thể (cũng có thể gọi là object)
- selection set (ss): tập hợp thực thể
- symbol table objects: các bảng mô tả
- dxf code: mã đối tượng

Một ví dụ đơn giản để bạn tự kiểm tra kiến thức:
Có 1 circle trên bản vẽ, bạn viết trình lisp sao cho khi người dùng select vào sẽ nhận được toàn bộ các thông tin về nó: toạ độ tâm, bán kính, layer, màu sắc.... . Gợi ý: dùng hàm entget
  • 0