Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu] Lisp chọn polyline có elevation chẵn - lẻ


  • Please log in to reply
5 replies to this topic

#1 united

united

    biết vẽ arc

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

Đã gửi 23 April 2014 - 11:24 AM

Trước tiên xin cảm ơn các bác vì đã quan tâm đến "yêu cầu" của em.

 

Chả là em có mấy bản vẽ cần xóa hết các polyline có elevation lẻ. Làm thủ công thì lâu quá nên lên đây nhờ các bác viết giùm em cái lisp chọn polyline có elevation lẻ để xóa (hoặc ẩn) chúng đi. Có lựa chọn chẵn - lẻ thì càng tốt ạ. :D

 

Xin cảm ơn lần nữa!


  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 23 April 2014 - 11:28 AM

Thì cũng đưa bản vẽ lên để thấy "chẳn, lẻ" và test chứ!


  • 1

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


#3 united

united

    biết vẽ arc

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

Đã gửi 23 April 2014 - 11:53 AM

Thì cũng đưa bản vẽ lên để thấy "chẳn, lẻ" và test chứ!

Polyline có elevation chẵn lẻ mà cũng phải up bản vẽ hay sao bác?

Thì cứ giả sử bản vẽ của em có 10 polyline nhé. 10 thằng này có elevation từ 1.00 đến 10.00, bây giờ em cần 1 cái lisp chọn được các polyline có elevation 1, 3, 5, 7, 9 ạ.

P/S: Chắc bác nghĩ chẵn lẻ là 10.00 với 10.01?  :)


  • 0

#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 23 April 2014 - 12:08 PM

Polyline có elevation chẵn lẻ mà cũng phải up bản vẽ hay sao bác?

Thì cứ giả sử bản vẽ của em có 10 polyline nhé. 10 thằng này có elevation từ 1.00 đến 10.00, bây giờ em cần 1 cái lisp chọn được các polyline có elevation 1, 3, 5, 7, 9 ạ.

P/S: Chắc bác nghĩ chẵn lẻ là 10.00 với 10.01?  :)

Cái này thì dễ thôi. Vài dòng code là được. Tuy nhiên, chỉ với khái niệm chẵn/lẻ mà đã rắc rối rồi. Chẵn - theo cách hiểu thông thường là 10, 12, 14, chứ không phải 10.00, 12.00, 14.00. Còn hiểu rộng ra thì chẵn là làm tròn đến 1 con số nào đó, nên có thể 10.02 là chẵn mà 10.03 là lẻ (xét đến 2 chữ số thập phân).v.v...

Không có bản vẽ thì không test được. Đây là lý do quan trọng nhất!


  • 1

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

united

    biết vẽ arc

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

Đã gửi 23 April 2014 - 12:59 PM

Cái này thì dễ thôi. Vài dòng code là được. Tuy nhiên, chỉ với khái niệm chẵn/lẻ mà đã rắc rối rồi. Chẵn - theo cách hiểu thông thường là 10, 12, 14, chứ không phải 10.00, 12.00, 14.00. Còn hiểu rộng ra thì chẵn là làm tròn đến 1 con số nào đó, nên có thể 10.02 là chẵn mà 10.03 là lẻ (xét đến 2 chữ số thập phân).v.v...

Không có bản vẽ thì không test được. Đây là lý do quan trọng nhất!

Gửi bác: https://www.mediafir...n74iv5pylqolhsz


  • 0

#6 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 23 April 2014 - 01:58 PM

Đây bạn!

; Xoa cac Lwpolyline co cao do chan (VD: 2.0 4.0) hoac le (VD: 1.0 3.0).
(defun C:HA( / cl ss hei ent)
 (initget "C L")
 (setq cl (getkword "\nXoa cac Pline co cao do [Chan/Le] <L>: "))
 (princ "\nChon cac Pline...")
 (if (setq ss (ssget '((0 . "Lwpolyline"))))
  (repeat (setq i (sslength ss))
   (setq hei (cdr (assoc 38 (entget (setq ent (ssname ss (setq i (1- i))))))))
   (cond
    ((and (= cl "C") (= (fix (/ hei 2)) (/ hei 2))) (entdel ent))
    ((and (or (not cl) (= cl "L")) (/= (fix (/ hei 2)) (/ hei 2))) (entdel ent))))))
 


  • 1

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