Đến nội dung


Hình ảnh
- - - - -

Em cần Lisp bật tắt layer... (layon, layoff, layiso)


  • Please log in to reply
17 replies to this topic

#1 hackerobe

hackerobe

    biết zoom

  • Members
  • Pip
  • 11 Bài viết
Điểm đánh giá: 176 (tàm tạm)

Đã gửi 16 September 2008 - 04:12 PM

Có ai có kô ạ... share cho em với ạ... em đang rất cần... :)

Nhân tiện cho em hỏi luôn: trong cái express của autocad2004 cái lisp layon, layoff, layiso nằm ở file nào vậy các bác...
  • 0

#2 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 16 September 2008 - 04:29 PM

Có ai có kô ạ... share cho em với ạ... em đang rất cần... :)

Trong Express tool.


Nhân tiện cho em hỏi luôn: trong cái express của autocad2004 cái lisp layon, layoff, layiso nằm ở file nào vậy các bác...

Tất cả trong file acetlayr.lsp của Express tool.
  • 0

#3 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 16 September 2008 - 04:32 PM

Có ai có kô ạ... share cho em với ạ... em đang rất cần... :)

Nhân tiện cho em hỏi luôn: trong cái express của autocad2004 cái lisp layon, layoff, layiso nằm ở file nào vậy các bác...


http://www.cadviet.c...tatmolopbot.lsp

Đây là lisp layon, layof của cad14 tôi có sửa 1 chút cho chạy được trong các cad mà không cần express. Nói chung việc làm này rất tào lao nhưng vì táy máy nên tôi vẫn làm.

Tôi đã sửa lại tên lệnh.
-layiso = dd
-layon = mm
-layoff = tt
  • 2

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#4 hackerobe

hackerobe

    biết zoom

  • Members
  • Pip
  • 11 Bài viết
Điểm đánh giá: 176 (tàm tạm)

Đã gửi 16 September 2008 - 04:42 PM

http://www.cadviet.c...tatmolopbot.lsp

Đây là lisp layon, layof của cad14 tôi có sửa 1 chút cho chạy được trong các cad mà không cần express. Nói chung việc làm này rất tào lao nhưng vì táy máy nên tôi vẫn làm.

Tôi đã sửa lại tên lệnh.
-layiso = dd
-layon = mm
-layoff = tt


Bác ơi.. em kô load được... bác post lại đy ạ...
  • 0

#5 gp14

gp14

    DO TUAN GIAP

  • Moderator
  • PipPipPipPipPipPipPip
  • 1860 Bài viết
Điểm đánh giá: 1120 (rất tốt)

Đã gửi 16 September 2008 - 10:09 PM

;;; =========================== Layer Iso ===================================
(Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
(if (not (setq SS (ssget "i"))) (progn
(prompt "\nTuan Giap hay chon doi tuong tren layer(s) muon lam viec doc lap: ")
(setq SS (ssget)) ) )
(if SS (progn (setq CNT 0)
(while (setq LAY (ssname SS CNT))
(setq LAY (cdr (assoc 8 (entget LAY))))
(if (not (member LAY LAYLST))
(setq LAYLST (cons LAY LAYLST)) )
(setq CNT (1+ CNT)) )
(if (member (getvar "CLAYER") LAYLST)
(setq LAY (getvar "CLAYER"))
(setvar "CLAYER" (setq LAY (last LAYLST))) )
(command "_.LAYER" "_OFF" "*" "_Y")
(foreach VAL LAYLST (command "_ON" VAL))
(command "") (if (= (length LAYLST) 1)
(prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
(prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
"Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
(defun c:LAYISO () (layiso)) (defun c:LAI () (layiso))

;;; ============================ Layer OFF =================================
(DEFUN LAYOFF (/ SSET SSL ENT LAY I MODE) (setvar "cmdecho" 0)
(prompt "\nTuan Giap hay chon doi tuong tren layer(s) muon OFF: ")
(SETQ SSET (SSGET)) (IF (/= NIL SSET) (PROGN
(SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
(WHILE (< I SSL)
(SETQ ENT (ENTGET (SSNAME SSET I)))
(IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
(SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
(COMMAND "LAYER" "OFF" LAY "")
(IF (= MODE 1) (COMMAND ""))))
(setq Loff6 Loff5) (setq Loff5 Loff4) (setq Loff4 Loff3) (setq Loff3 Loff2) (setq Loff2 Loff1) (setq Loff1 LAY)
(princ (strcat "\n Layer : " LAY " da OFF.")) (setvar "cmdecho" 1) (princ))
(defun c:LAYOFF () (layoff)) (defun c:LO () (layoff))
;;; ================================ Layer ON ==============================
(Defun LAYON () (setvar "cmdecho" 0)
(setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
(Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))
(defun c:LAYON () (layon)) (defun c:LOO () (layon))
(Defun C:OLL () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))

;;; ============================== Layer Lock ==============================
(Defun LAYLCK (/ LAY)
(setvar "cmdecho" 0)
(setq LAY (entsel "\n>Tuan Giap hay pick doi tuong tren layer muon LOCK: "))
(if LAY
(progn
(setq LAY (cdr (assoc 8 (entget (car LAY)))))
(Command "_.LAYER" "_LOCK" LAY "")
(princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
(defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
;;; ============================== Layer Lock ==============================
(Defun LAYULK (/ LAY)
(setvar "cmdecho" 0)
(setq LAY (entsel "\n>Tuan Giap hay pick doi tuong tren layer muon UNLOCK: "))
(if LAY
(progn
(setq LAY (cdr (assoc 8 (entget (car LAY)))))
(Command "_.LAYER" "_UNLOCK" LAY "")
(princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )
(defun c:LAYULK () (layulk)) (defun c:LKK () (layulk))

;;; =========================== Layer hien hanh =============================
(defun layset (/ LAY) (setvar "cmdecho" 0)
(setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))
(if LAY (progn
(setq LAY (cdr (assoc 8 (entget (car LAY)))))
(command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
(progn
(if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop))
(progn
(command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )
(defun c:LL () (layset))(defun c:LAYSET () (layset))

Có ai có kô ạ... share cho em với ạ... em đang rất cần... :)

Nhân tiện cho em hỏi luôn: trong cái express của autocad2004 cái lisp layon, layoff, layiso nằm ở file nào vậy các bác...


  • 0

#6 nataca

nataca

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 712 Bài viết
Điểm đánh giá: 553 (tốt)

Đã gửi 16 September 2008 - 10:38 PM

Có ai có kô ạ... share cho em với ạ... em đang rất cần... :)

Nhân tiện cho em hỏi luôn: trong cái express của autocad2004 cái lisp layon, layoff, layiso nằm ở file nào vậy các bác...

Sao lại có một yêu cầu lạ thế nhỉ :) Sao có express mà lại không dùng? Xin lisp Layon layoff... thì khác nào xin Express :lol: bởi vì Express đơn thuần cũng là Lisp thôi mà. Đôi khi có những cái không thể hiểu được :)
  • 0

#7 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 17 September 2008 - 10:40 AM

Sao lại có một yêu cầu lạ thế nhỉ :) Sao có express mà lại không dùng? Xin lisp Layon layoff... thì khác nào xin Express :) bởi vì Express đơn thuần cũng là Lisp thôi mà. Đôi khi có những cái không thể hiểu được :lol:

-Qua theo dỏi tôi thấy hình như bạn ấy đang viết 1 tiện ích gì đó và muốn tích hợp cái này vào trong lisp của bạn ấy hay sao đó chứ không đơn thuần là Express.
-Cái lệnh Express chưa chắc máy nào cũng có sẳn đâu và không đơn thuần là load 1 file lisp trong đó lên mà dùng được. Bạn hkông tin có thể thử load các lisp trong Express ở các máy không cài Express sẽ thấy. (nó kiểm tra me nu hay gì gì đó mình không rỏ lắm).
-Như quan điểm tôi đã nói rồi cái gì tôi quen dùng thì chép theo tuốt tuột ngồi máy nào cũng làm được nên có làm cái việc tào lao là sửa cái file lisp thành file lisp.
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#8 nataca

nataca

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 712 Bài viết
Điểm đánh giá: 553 (tốt)

Đã gửi 20 September 2008 - 10:36 PM

-Qua theo dỏi tôi thấy hình như bạn ấy đang viết 1 tiện ích gì đó và muốn tích hợp cái này vào trong lisp của bạn ấy hay sao đó chứ không đơn thuần là Express.

Cái này không đúng lắm. Vì nếu có khả năng viết tiện ích và tích hợp... thì chắc không khó khăn để tìm express ở đâu.
Dùng Lisp Express của cad thì phải có sự sửa đổi một chút chứ ko thể dùng ngay được.
  • 0

#9 tmt_tyt

tmt_tyt

    biết zoom

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

Đã gửi 17 May 2009 - 05:44 PM

Có đồng chí nào cần thì đây: http://www.cadviet.c...files/bonus.lsp
Lệnh:
12 Layon,
23 layoff,
` layiso,
Nếu ai không tiện với lệnh tắt này thì có thể thay đổi bằng lệnh khác
Củ chuối thế, nó không thành file à.
Thế thì theo đường link này: http://www.mediafire...04e75f6e8ebb871
Have fun
  • 0

#10 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 31 May 2010 - 05:53 PM

Tiện đây các bác cho em hỏi: ta có thể nhúng 1 lệnh của express tool vào lisp thông qua hàm command không? nếu được thì làm như thế nào?
mình làm theo cách thông thường nhưng không được
ví du: (command "textmask" "L" "")
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#11 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 31 May 2010 - 06:37 PM

EDIT: NHẦM :rolleyes:
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#12 vungoc

vungoc

    biết zoom

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

Đã gửi 31 May 2010 - 09:13 PM

Chào các Pác ! Em là thành viên cadviet lâu rồi nhưng hôm nay mới mạnh dạn, mạn phép viết vài dòng. Em cũng hay sử dụng layon, layoff, layiso và một vài lệnh tắt khác nhưng em vào trong suport đổi lệnh trong file cad.pgp là nhanh nhất, cũng tương đương như các pác dùng lips mà còn tiện hơn. Thanks!
  • 0

#13 phanthanh2509

phanthanh2509

    biết zoom

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

Đã gửi 10 September 2013 - 07:06 PM

Chào các Pác ! Em là thành viên cadviet lâu rồi nhưng hôm nay mới mạnh dạn, mạn phép viết vài dòng. Em cũng hay sử dụng layon, layoff, layiso và một vài lệnh tắt khác nhưng em vào trong suport đổi lệnh trong file cad.pgp là nhanh nhất, cũng tương đương như các pác dùng lips mà còn tiện hơn. Thanks!

b ơi sao file acad.pgp của t ko có lệnh layoff với layon layiso


  • 0

#14 Namvanvo

Namvanvo

    Edu level: li5

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

Đã gửi 11 September 2013 - 08:52 AM

b ơi sao file acad.pgp của t ko có lệnh layoff với layon layiso

Các lệnh này, và nhiều lệnh nữa, thuộc Tool Express, không phải là những lệnh nguyên thủy của cad nên vắng mặt trong file acad.pgp.


  • 1

#15 hochoaivandot

hochoaivandot

    biết dimradius

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

Đã gửi 11 September 2013 - 10:49 AM

Nó là lệnh Cad hay lệnh của Express tùy thuộc vào Version Cad bạn đang dùng.

Nếu dùng Cad>=2006 thì nó là lệnh Cad và có thể xem Format\Layer tools.

Còn nếu Cad<2006 thì nó là lệnh Express


  • 1

Dương Bá Diệp

 

www.cadonline.duyxuyen.vn 

 

Thành viên nhóm CADMAGIC

 


#16 hochoaivandot

hochoaivandot

    biết dimradius

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

Đã gửi 11 September 2013 - 10:51 AM

b ơi sao file acad.pgp của t ko có lệnh layoff với layon layiso

Không có thì bạn copy 1 dòng chuẩn xuống rồi sửa lại. Ví dụ

1,        *LAYISO

2,        *LAYION

3,        *LAYOFF


  • 0

Dương Bá Diệp

 

www.cadonline.duyxuyen.vn 

 

Thành viên nhóm CADMAGIC

 


#17 tranluukhanh

tranluukhanh

    Chưa sử dụng CAD

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

Đã gửi 11 September 2013 - 12:16 PM

bạn dùng cad 2007 ý bật tắt layer đơn dản cần j Express

bạn vào tools/customze/edit program parameters

nó hiên ra 1 bảng notepad

việc của bạn cần làm bây giờ là tìm dòng lệnh của acad này

rồi bản viết thêm

1,            *layon
2,           *layoff
3,           *layiso

là đc 1 2 3 là lệnh bạn có thể thay thế lệnh khác cho tiện dùng nhưng đừng trùng lênh mặc định nha


  • 1

#18 toiyeuvietnam

toiyeuvietnam

    biết vẽ polygon

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

Đã gửi 16 July 2014 - 06:44 AM

các anh ơi, nhò các anh giúp sủa doạn đoạn code Layoff dưới đây, dể pick đối tượng Layer nào thì đối tượng đó tắt ngay mà không phải Enter sau khi chon đối tượng giống như Freeze đấy! 
;;; ============================ Layer OFF =================================
(DEFUN LAYOFF (/ SSET SSL ENT LAY I MODE)
 (setvar "cmdecho" 0)
   (prompt "\nTuan Giap hay chon doi tuong tren layer(s) muon OFF: ")
  (SETQ SSET (SSGET))
   (IF (/= NIL SSET) (PROGN     (SETQ SSL (SSLENGTH SSET))  (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
      (WHILE (< I SSL)       (SETQ ENT (ENTGET (SSNAME SSET I)))
       (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
       (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))  (SETQ I (+ I 1)))
     (COMMAND "LAYER" "OFF" LAY "")
     (IF (= MODE 1) (COMMAND ""))))
 (setq Loff6 Loff5) (setq Loff5 Loff4) (setq Loff4 Loff3) (setq Loff3 Loff2) (setq Loff2 Loff1) (setq Loff1 LAY)
 (princ (strcat "\n      Layer : " LAY " da OFF.")) (setvar "cmdecho" 1)   (princ))(defun c:LAYOFF () (layoff))
 (defun c:LO     () (layoff))

  • 0