Đến nội dung


Hình ảnh
- - - - -

[Nhờ chỉnh sửa] Lisp thay đổi màu layer


  • Please log in to reply
18 replies to this topic

#1 thanhdatkts

thanhdatkts

    biết vẽ line

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

Đã gửi 08 July 2011 - 09:18 AM

mình tìm đc 1 list thay đổi màu layer nhưng nó thay đổi hết tất cả layer về cùng một màu

muốn sửa chọn những đối tượng mình chọn mới thay đổi thành màu khác chứ kg phải thay đổi tất cả layer trong bản vẽ

(defun c:dml ()
(command "undo" "be")
(setq ddd (entsel "\nChon doi tuong thuoc lop muon doi mau"))
(while
(null ddd)
(princ "\nChua chon duoc doi tuong! Chon lai")
(setq ddd (entsel "\nChon doi tuong thuoc lop muon doi mau"))
)
(setq DT (entget (car ddd)))
(setq LDT (cdr (assoc 8 dt)))
(princ "\nChon mau muon doi :")(setq m (acad_colordlg 7))
(command "-layer" "c" m LDT "")
(command "undo" "end")
(setvar "MODEMACRO" "**TAILIEUKYTHUAT.COM**")
(princ)
)

  • 1

#2 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 08 July 2011 - 09:48 AM

mình tìm đc 1 list thay đổi màu layer nhưng nó thay đổi hết tất cả layer về cùng một màu

muốn sửa chọn những đối tượng mình chọn mới thay đổi thành màu khác chứ kg phải thay đổi tất cả layer trong bản vẽ

-Lisp trên chỉ thay đổi màu của layer chứa đối tượng bạn chọn chứ ko phải "hết tất cả layer về cùng một màu".
-Bạn muốn "những đối tượng mình chọn mới thay đổi thành màu khác" nghĩa là thay màu của đối tượng ko còn là bylayer nửa phải ko?
*Nếu vậy thì dùng này:
(defun c:dm (/ m ss)
(command "undo" "be")
(princ "\nChon doi tuong muon doi mau:")
(setq ss (ssget))
(princ "\nChon mau muon doi :")(setq m (acad_colordlg 7))
(command "change" ss "" "P" "c" m "")
(command "undo" "end")
(setvar "MODEMACRO" "**KTS_DUY**")
(princ)
)



Tôi đã xoá các bài của kexu và thanhdatkts đề nghị tập trung vào chuyên môn.
@thanhdatkts: đề nghị chồng cho tôi 1 dấu + nếu không tôi chồng cho bạn 1 dấu trừ đấy! :P

  • 3

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


#3 dovananh.xd

dovananh.xd

    biết lệnh offset

  • Members
  • PipPipPip
  • 174 Bài viết
Điểm đánh giá: 25 (tàm tạm)

Đã gửi 25 November 2011 - 09:06 AM

-Lisp trên chỉ thay đổi màu của layer chứa đối tượng bạn chọn chứ ko phải "hết tất cả layer về cùng một màu".
-Bạn muốn "những đối tượng mình chọn mới thay đổi thành màu khác" nghĩa là thay màu của đối tượng ko còn là bylayer nửa phải ko?
*Nếu vậy thì dùng này:

(defun c:dm (/ m ss)
(command "undo" "be")
(princ "\nChon doi tuong muon doi mau:")
(setq ss (ssget))
(princ "\nChon mau muon doi :")(setq m (acad_colordlg 7))
(command "change" ss "" "P" "c" m "")
(command "undo" "end")
(setvar "MODEMACRO" "**KTS_DUY**")
(princ)
)



Tôi đã xoá các bài của kexu và thanhdatkts đề nghị tập trung vào chuyên môn.
@thanhdatkts: đề nghị chồng cho tôi 1 dấu + nếu không tôi chồng cho bạn 1 dấu trừ đấy! Hình đã gửi

Lisp này dùng rất là hay và tiện dùng.
Bác có thể phát triên lisp này thành một cái tiện hơn nữa. Ví dụ như chỉ cần load lisp này lên sau đó chọn đối tượng=>bấm phím 1, màu đối tượng đó là màu 1...255.
Chắc chắn là bác làm được!
P/S: Sửa lại một chút: sau khi gõ lệnh đổi màu (VD: dm) sau đó chọn đối tượng và bấm phím 1...225 là đối tượng đó đổi màu theo chứ không cần hiện lên cái bảng chọn màu như trong lisp đó nữa.
  • 0

#4 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 25 November 2011 - 09:20 AM

Mình nhớ cái lisp đổi màu mà bạn yêu cầu đã có rồi bạn ah.Hoặc trên cơ sở lisp của bác duy đã viết bạn thay các dòng sau:
"Defun c:1 or 2,3,....225";tên lệnh bạn muốn gán
Xóa dòng sau:(princ "\nChon mau muon doi :")(setq m (acad_colordlg 7))
Và thay đổi dòng này nữa:(command "change" ss "" "P" "c" m "") thành (command "change" ss "" "P" "c" 1 ""); 1 này chính là màu bạn muốn đổi
  • 1

#5 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 25 November 2011 - 09:22 AM

Lisp này dùng rất là hay và tiện dùng.
Bác có thể phát triên lisp này thành một cái tiện hơn nữa. Ví dụ như chỉ cần load lisp này lên sau đó chọn đối tượng=>bấm phím 1, màu đối tượng đó là màu 1...255.
Chắc chắn là bác làm được!
P/S: Sửa lại một chút: sau khi gõ lệnh đổi màu (VD: dm) sau đó chọn đối tượng và bấm phím 1...225 là đối tượng đó đổi màu theo chứ không cần hiện lên cái bảng chọn màu như trong lisp đó nữa.

Sửa 2 dòng: (princ "\nChon mau muon doi :")(setq m (acad_colordlg 7))
Thành 1 dòng: (setq m (getint "\nChon mau muon doi: "))
  • 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.


#6 dovananh.xd

dovananh.xd

    biết lệnh offset

  • Members
  • PipPipPip
  • 174 Bài viết
Điểm đánh giá: 25 (tàm tạm)

Đã gửi 25 November 2011 - 09:34 AM

OK rồi, cám ơn bác. Pro quá!
  • 0

#7 dovananh.xd

dovananh.xd

    biết lệnh offset

  • Members
  • PipPipPip
  • 174 Bài viết
Điểm đánh giá: 25 (tàm tạm)

Đã gửi 25 November 2011 - 09:36 AM

Mình nhớ cái lisp đổi màu mà bạn yêu cầu đã có rồi bạn ah.Hoặc trên cơ sở lisp của bác duy đã viết bạn thay các dòng sau:
"Defun c:1 or 2,3,....225";tên lệnh bạn muốn gán
Xóa dòng sau:(princ "\nChon mau muon doi :")(setq m (acad_colordlg 7))
Và thay đổi dòng này nữa:(command "change" ss "" "P" "c" m "") thành (command "change" ss "" "P" "c" 1 ""); 1 này chính là màu bạn muốn đổi

Cả 2 đều hay! hí
Có lớp nào dạy viết lisp không các bác?
  • 0

#8 dovananh.xd

dovananh.xd

    biết lệnh offset

  • Members
  • PipPipPip
  • 174 Bài viết
Điểm đánh giá: 25 (tàm tạm)

Đã gửi 25 November 2011 - 09:51 AM

Mình nhớ cái lisp đổi màu mà bạn yêu cầu đã có rồi bạn ah.Hoặc trên cơ sở lisp của bác duy đã viết bạn thay các dòng sau:
"Defun c:1 or 2,3,....225";tên lệnh bạn muốn gán
Xóa dòng sau:(princ "\nChon mau muon doi :")(setq m (acad_colordlg 7))
Và thay đổi dòng này nữa:(command "change" ss "" "P" "c" m "") thành (command "change" ss "" "P" "c" 1 ""); 1 này chính là màu bạn muốn đổi

Không được rồi bác ơi, em đã chuyển đổi như hướng dẫn nhưng không được.
Ở dòng Defun c: 1 or 2,3,...225... đấy, bây h em muốn click đối tượng trước sau đó bấm phím 1 thì màu đối tượng đó sẽ là màu 1...tương tự 225 thì màu đối tượng là 225?
Em sửa lisp như trên nhưng không được. Bác xem lại hộ em phát!
  • 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 25 November 2011 - 09:56 AM

Mình nhớ cái lisp đổi màu mà bạn yêu cầu đã có rồi bạn ah.Hoặc trên cơ sở lisp của bác duy đã viết bạn thay các dòng sau:
"Defun c:1 or 2,3,....225";tên lệnh bạn muốn gán

Như vậy cần bao nhiêu màu thì phải làm bấy nhiêu defun, mệt chết cd2k44 ơi ^^
http://www.cadviet.c...ndpost&p=159794
  • 1

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


#10 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 25 November 2011 - 10:23 AM

Như vậy cần bao nhiêu màu thì phải làm bấy nhiêu defun, mệt chết cd2k44 ơi ^^
http://www.cadviet.c...ndpost&p=159794

Hay quá ketxu.Tại mình không biết về lisp nên chỉ bik sửa vậy thôi.hihi
  • 0

#11 doanvantien86

doanvantien86

    biết vẽ arc

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

Đã gửi 25 November 2011 - 11:52 AM

EM down cái lisp đổi màu bên kia về rồi sao ko dùng đc. các bác chỉ em với.
  • 0

#12 nuocvn

nuocvn

    biết zoom

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

Đã gửi 17 November 2012 - 05:47 PM

-Lisp trên chỉ thay đổi màu của layer chứa đối tượng bạn chọn chứ ko phải "hết tất cả layer về cùng một màu".
-Bạn muốn "những đối tượng mình chọn mới thay đổi thành màu khác" nghĩa là thay màu của đối tượng ko còn là bylayer nửa phải ko?
*Nếu vậy thì dùng này:

(defun c:dm (/ m ss)
(command "undo" "be")
(princ "\nChon doi tuong muon doi mau:")
(setq ss (ssget))
(princ "\nChon mau muon doi :")(setq m (acad_colordlg 7))
(command "change" ss "" "P" "c" m "")
(command "undo" "end")
(setvar "MODEMACRO" "**KTS_DUY**")
(princ)
)



Tôi đã xoá các bài của kexu và thanhdatkts đề nghị tập trung vào chuyên môn.
@thanhdatkts: đề nghị chồng cho tôi 1 dấu + nếu không tôi chồng cho bạn 1 dấu trừ đấy! Hình đã gửi

bác ơi cái lisp của bác là chọn đối tượng nao thì đối tượng đó được chuyển màu chứ không đổi cả màu layer đối tượng đó với lại những đối tượng trong block thì không chuyển được ....bác xem có cai lisp nào khác không cho e xin với ...thank
  • 0

#13 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 17 November 2012 - 05:57 PM

Đổi màu layer của đối tượng được chọn là lisp trên cùng đó bạn (bài #1).
  • 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.


#14 nuocvn

nuocvn

    biết zoom

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

Đã gửi 17 November 2012 - 06:05 PM

Đổi màu layer của đối tượng được chọn là lisp trên cùng đó bạn (bài #1).

bác ới cái lisp của bác ấy phải chọn từng đối tương với lại đối tượng trong block thì không chuyển luôn được .... bác có cái lisp nào mà mình chọn nhiều layer đổi cùng đổi màu không kể cả đối tượng trong block...thank bác

  • 0

#15 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 17 November 2012 - 06:09 PM

Block có thể chứa nhiều layer. Bạn muốn chọn block thì tất cả layer của block đó đều bị đổi màu, đồng thời tất cả các đối tượng bạn chọn thì các layer đều đổi về cùng 1 màu?
Yêu cầu này có vẽ không thực tế lắm.
  • 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.


#16 nuocvn

nuocvn

    biết zoom

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

Đã gửi 17 November 2012 - 06:21 PM

thank bác đã trả lời .....còn cái vấn đề chọn nhiều layer cùng đổi

Block có thể chứa nhiều layer. Bạn muốn chọn block thì tất cả layer của block đó đều bị đổi màu, đồng thời tất cả các đối tượng bạn chọn thì các layer đều đổi về cùng 1 màu?
Yêu cầu này có vẽ không thực tế lắm.

thank bác đã trả lời ... còn vấn để chọn nhiều layer để chuyền màu bác có thể giúp e viết cái lisp đó được không ạ ... :(
  • 0

#17 hoangkimoanh

hoangkimoanh

    biết vẽ spline

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

Đã gửi 31 July 2013 - 06:59 PM

-Lisp trên chỉ thay đổi màu của layer chứa đối tượng bạn chọn chứ ko phải "hết tất cả layer về cùng một màu".
-Bạn muốn "những đối tượng mình chọn mới thay đổi thành màu khác" nghĩa là thay màu của đối tượng ko còn là bylayer nửa phải ko?
*Nếu vậy thì dùng này:


(defun c:dm (/ m ss)
(command "undo" "be")
  (princ "\nChon doi tuong muon doi mau:")
  (setq ss (ssget))
  (princ "\nChon mau muon doi :")(setq m (acad_colordlg 7))
(command "change" ss "" "P" "c" m "")
(command "undo" "end")
(setvar "MODEMACRO" "**KTS_DUY**")
(princ)
)



Tôi đã xoá các bài của kexu và thanhdatkts đề nghị tập trung vào chuyên môn.
@thanhdatkts: đề nghị chồng cho tôi 1 dấu + nếu không tôi chồng cho bạn 1 dấu trừ đấy! tongue.gif

nhờ các anh sửa giúp em để khi gõ lệnh => Pick chọn đối tượng (theo Layer) => thì tất cả các đối tượng thuộc Layer đó sẽ chuyển thành màu số 4 (Cyan).

cảm ơn các anh!


  • 0

#18 lyky

lyky

    biết vẽ polygon

  • Members
  • PipPip
  • 70 Bài viết
Điểm đánh giá: 126 (tàm tạm)

Đã gửi 01 August 2013 - 10:19 AM

nhờ các anh sửa giúp em để khi gõ lệnh => Pick chọn đối tượng (theo Layer) => thì tất cả các đối tượng thuộc Layer đó sẽ chuyển thành màu số 4 (Cyan).
cảm ơn các anh!

(defun c:dm ( / layy m ss ss1)
(princ "\nChon doi tuong thuoc layer ban muon doi mau:\n")
(setq ss (ssget)) (setq layy (cdr (assoc 8 (entget (ssname ss 0)))))
(setq ss1 (ssget "X" (list (cons 8 layy))))
(setq m (getint "\nChon mau muon doi <4>:\n"))
(if (= m nil) (setq m 4))
(command "_.change" ss1 "" "p" "c" m "")
(princ))

Xài tạm bạn nhé, bẫy lỗi và né lỗi gì gì đó thì bạn tự bổ xung vào nhé!  :D


  • 3

22665_13x13progress.gif   22665_lyky.gif   22665_13x13progress.gif


#19 hoangkimoanh

hoangkimoanh

    biết vẽ spline

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

Đã gửi 01 August 2013 - 11:51 AM

dùng tốt rồi, cảm ơn anh!


  • 0