Đến nội dung


Hình ảnh

Lọc đối tượng polyline với độ dầy


  • Please log in to reply
25 replies to this topic

#21 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 12 March 2012 - 10:42 AM

Lisp CPL của bác Hoành hay thật. Nhưng em muốn sau khi chon toàn bộ PL thì sẽ tạo wipeout cho toàn bộ PL này thi như thế nào ạ ?

Đây bạn:

(defun c:CPL( / ss z)
(setq ss (ssget '((0 . "LWPOLYLINE") (70 . 1))))
(setq z 0)
(repeat (sslength ss)
(command "wipeout" "p" (ssname ss z) "y")
(setq z (1+ z)))
(princ))

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


#22 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 12 March 2012 - 11:23 AM

Trong trường hợp Line không kín hoặc trùng điểm: ví du Pline qua 4 điểm abcda là bị trùng điểm?
Thì có cách nào để minh chọn cái Pline dạng này để tạo luôn wipeout ko ?
Cám ơn !
  • 0

#23 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 12 March 2012 - 11:34 AM

Trong trường hợp Line không kín hoặc trùng điểm: ví du Pline qua 4 điểm abcda là bị trùng điểm?
Thì có cách nào để minh chọn cái Pline dạng này để tạo luôn wipeout ko ?
Cám ơn !

Với pline trùng điểm: làm được.
Với pline không kín: nếu bạn chấp nhận nối điểm đầu và cuối lại bằng 1 đường thẳng thì cũng làm được.
  • 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.


#24 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 12 March 2012 - 11:41 AM

Cụ thể là chọn như thế nào? với lisp hiện tại test thì không chọn
Thân !
  • 0

#25 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 12 March 2012 - 11:44 AM

Cụ thể là chọn như thế nào? với lisp hiện tại test thì không chọn
Thân !

Để chiều rảnh, nếu chưa ai giúp thì tôi sẽ giúp bạn (phải viết lại lisp).
P/S (13h40-12/3/2012): đây bạn!

(defun c:CPL( / ss z lsppoint pl)
(princ "\nChon cac Pline de tao Wipeout...")
(setq ss (ssget '((0 . "LWPOLYLINE"))))
(setq z 0)
(repeat (sslength ss)
(setq lstpoint (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget (ssname ss z)))))
(setq pl (LWpoly lstpoint 1))
(command "wipeout" "p" pl "y")
(entdel (ssname ss z))
(setq z (1+ z)))
(princ))
(defun LWPoly (lst cls)
(entmakex (append (list (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 100 "AcDbPolyline") (cons 90 (length lst)) (cons 70 cls))
(mapcar (function (lambda (p) (cons 10 p))) lst))))

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


#26 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 12 March 2012 - 02:12 PM

oke.Thank bạn rất nhiều !
  • 0