Đến nội dung


Hình ảnh
- - - - -

Cần Lisp ngược với lệnh Layiso


  • Please log in to reply
8 replies to this topic

#1 almodeus

almodeus

    biết vẽ arc

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

Đã gửi 11 February 2011 - 11:12 PM

có bác nào biết lisp nguoc voi layiso ko...nghĩa là đảo ngược thuộc tính mờ và sáng của các đối tượng
ex: có 3 đối tượng thuộc 3 layer A, B, C
ta layiso layer A. giờ ta muốn đổi ngược lai là layer B và C bi layiso, va layer A ko bị
  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 12 February 2011 - 09:18 PM

Nếu bạn để chế độ Layiso là Off thì đoạn code sau sẽ toggle trạng thái :
(defun c:lsw (/)
(vlax-map-collection
(vla-get-layers
(vla-get-activedocument (vlax-get-acad-object))
)
'(lambda (x)
(if (= (vla-get-layeron x) :vlax-false) (vla-put-layeron x :vlax-true) (vla-put-layeron x :vlax-false))
)
)
)
Còn nếu bạn để chế độ Fade Out thì đọc mấy dòng tiếp theo này ^^
@lispser : Với chế độ Fade Out, Cad sẽ lock layer thay vì Off nó.Nhưng khi un-lock (un-fade) thì độ mờ của layer không thay đổi được ngay, mà phải regen đôi lần, điều này khá cấm kỵ, có ai có giải pháp gì không ạ ?
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#3 almodeus

almodeus

    biết vẽ arc

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

Đã gửi 13 February 2011 - 09:11 AM

Nếu bạn để chế độ Layiso là Off thì đoạn code sau sẽ toggle trạng thái :

(defun c:lsw (/)
(vlax-map-collection
(vla-get-layers
(vla-get-activedocument (vlax-get-acad-object))
)
'(lambda (x)
(if (= (vla-get-layeron x) :vlax-false) (vla-put-layeron x :vlax-true) (vla-put-layeron x :vlax-false))
)
)
)
Còn nếu bạn để chế độ Fade Out thì đọc mấy dòng tiếp theo này ^^
@lispser : Với chế độ Fade Out, Cad sẽ lock layer thay vì Off nó.Nhưng khi un-lock (un-fade) thì độ mờ của layer không thay đổi được ngay, mà phải regen đôi lần, điều này khá cấm kỵ, có ai có giải pháp gì không ạ ?

Không được bạn ketxu ah, sau khi sài lệnh thì toàn bộ bị ẩn đi hết luôn...hix...mình cần lisp đảo ngược thuộc tính của đối tượng layiso thôi...để khi cần layiso nhiều layer sẽ đỡ mệt
  • 0

#4 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 13 February 2011 - 09:13 AM

À đúng rồi, bạn dùng lệnh này sau khi đã dùng layiso trước đó nhé.Toggle mà :)
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#5 almodeus

almodeus

    biết vẽ arc

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

Đã gửi 13 February 2011 - 09:25 AM

http://www.cadviet.c.../AN_HIEN_DT.zip
( pass giải nén là www.cadviet.com)

Lệnh 1Q : Ẩn đối tượng chọn ((giống Layoff)
Lệnh 2Q : Hiện tất cả đối tượng
Lệnh 3Q : Chỉ hiện đối tượng được chọn (giống Layiso)
Lệnh 12Q : Chuyển đổi qua lại giữa đối tượng ẩn và hiện. (cần lisp tổng quát cho lệnh này)
Các lệnh giống như layon và layoff thôi. Mong rằng giúp ích được cho bác và cho các anh em.
cái lisp mình cần nó hơi giống với cái dạng lisp này ở cái lệnh số 4: 12Q...nhưng sẽ áp dụng đổi thuộc tính qua lai giữa các đối tượng cho các lệnh sau:

1, *LAYOFF

3, *LAYFRZ

5, *LAYLCK

7, *LAYISO

9, *LAYCUR
  • 0

#6 almodeus

almodeus

    biết vẽ arc

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

Đã gửi 13 February 2011 - 09:26 AM

À đúng rồi, bạn dùng lệnh này sau khi đã dùng layiso trước đó nhé.Toggle mà :)

Vẫn không được...sau khi layiso thì sài lệnh nó vẫn ẩn đi hết luôn...hix
  • 0

#7 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 13 February 2011 - 09:49 AM

Mình hỏi bạn để layiso ở chế độ nào ? Off hay Lock and Fade??
Sau khi layiso thì các layer được chọn ở chế độ On, các layer còn lại ở chế độ off.Tiếp sau đó nếu muốn đổi ngược lại thì dùng lệnh của mình, các layer Off sẽ thành On và ngược lại.Còn nếu bạn để chế độ Lock and Fade thì hãy đọc lại bài đầu của mình
Mình luôn test rất kỹ trước khi đưa code lên.
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#8 almodeus

almodeus

    biết vẽ arc

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

Đã gửi 13 February 2011 - 10:13 AM

ah, mình de che do lock...hix...
  • 0

#9 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 13 February 2011 - 10:38 AM

Mình không biết nói j nữa :) Câu đầu tiên mình đã lưu ý r, n có lẽ bạn k để ý:)
Với code mình viết thì chỉ cần thêm vài dòng là toggle cả layer freeze,lock...Tuy nhiên việc toggle trạng thái của các đối tượng Lock and Fade không cập nhật ngay( các đối tượng đáng ra phải mờ vẫn sáng, và ngược lại), mà phải regen một số lần, nếu bản vẽ nặng thì thật khó chịu.Chắc mình không giúp được gì hơn rồi, đành chờ mọi người thôi :)
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC