Đến nội dung


Hình ảnh
- - - - -

[Nhờ Kiểm Tra] Hàm Reverse


  • Please log in to reply
6 replies to this topic

#1 huunhantvxdts

huunhantvxdts

    biết dimbaseline

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

Đã gửi 18 June 2016 - 04:24 PM

Nhờ mọi người giải thích tại sao hàm reverse nằm trong đoạn lisp tôi đang dùng nó không chạy (Chuổi danh sách nó không đảo ngược lại, muốn text chọn trước nó phải xếp trước)

đây là lisp:

  (defun c:test (/ lsttn lstte)
  (setq lop1 "entdauco")
  (setq ent (car (entsel "\nChon Pline hoac Hatch mau tinh dien tich:")))
  (while ent
  (setq fltr (ssx_nhan ent))
  (setq lsttn (cons fltr lsttn))
  (prompt "\nChon Text ghi dien tich.")
  (setq DTS (car (entsel)))
  (setq DTS (entget DTS))
  (setq NDTS (cdr (assoc 1 DTS)))
  (setq lstte (cons NDTS lstte))
  (setq ent (car (entsel "\nChon Pline hoac Hatch mau tinh dien tich:")))
   )
  (reverse lstte)
  (princ lstte)
   )
   (defun ssx_nhan (ent / data fltr)
  (if ent
    (progn
      (setq data (entget ent))
      (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
        (if (assoc x data)
          (setq fltr
            (cons (assoc x data) fltr)
          )
        )
      )
      (reverse fltr)
    )
  )
)

file để test:


  • 0

#2 huunhantvxdts

huunhantvxdts

    biết dimbaseline

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

Đã gửi 18 June 2016 - 04:28 PM

file dinh kèm:

http://www.cadviet.c...8784_dcranh.rar


  • 0

#3 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 18 June 2016 - 04:45 PM

Nhờ mọi người giải thích tại sao hàm reverse nằm trong đoạn lisp tôi đang dùng nó không chạy (Chuổi danh sách nó không đảo ngược lại, muốn text chọn trước nó phải xếp trước)

đây là lisp:

  (defun c:test (/ lsttn lstte)
  (setq lop1 "entdauco")
  (setq ent (car (entsel "\nChon Pline hoac Hatch mau tinh dien tich:")))
  (while ent
  (setq fltr (ssx_nhan ent))
  (setq lsttn (cons fltr lsttn))
  (prompt "\nChon Text ghi dien tich.")
  (setq DTS (car (entsel)))
  (setq DTS (entget DTS))
  (setq NDTS (cdr (assoc 1 DTS)))
  (setq lstte (cons NDTS lstte))
  (setq ent (car (entsel "\nChon Pline hoac Hatch mau tinh dien tich:")))
   )
  (reverse lstte)
  (princ lstte)
   )
   (defun ssx_nhan (ent / data fltr)
  (if ent
    (progn
      (setq data (entget ent))
      (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
        (if (assoc x data)
          (setq fltr
            (cons (assoc x data) fltr)
          )
        )
      )
      (reverse fltr)
    )
  )
)

file để test:

Đây là k/quả Debug :

 15454_reverse.png


  • 0

#4 huunhantvxdts

huunhantvxdts

    biết dimbaseline

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

Đã gửi 18 June 2016 - 04:55 PM

Đây là k/quả Debug :

 15454_reverse.png

hàm (Reverse lstte) trong hàm chính chứ không phải hàm con


  • 0

#5 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 18 June 2016 - 05:18 PM

Dùng (Print (reverse lstte))
  • 1

#6 huunhantvxdts

huunhantvxdts

    biết dimbaseline

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

Đã gửi 18 June 2016 - 05:37 PM

Dùng (Print (reverse lstte))

Cám ơn bạn nhiều bây giờ mình muốn lấy danh sách đó để xử lý các bước tiếp theo phải làm thế này đúng không?

(setq lstte  (reverse lstte))


  • 0

#7 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 18 June 2016 - 05:55 PM

Cám ơn bạn nhiều bây giờ mình muốn lấy danh sách đó để xử lý các bước tiếp theo phải làm thế này đúng không?

(setq lstte  (reverse lstte))

Đương nhiên đúng!


  • 0

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