Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu] lisp Thay đổi màu sắc cho các block


  • Please log in to reply
17 replies to this topic

#1 PUCH

PUCH

    biết vẽ circle

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

Đã gửi 19 December 2008 - 10:48 AM

Hi!!!
Mình có một số bản vẻ đang phải chỉnh sửa.
Trong đó có khá nhìu block, mà block thì lại chẳng có cách nào thay đổi được các tính chất của nó: màu sắc, nét...
Mún thay đổi pải vào từng block, tốn nhìu thời gian lắm .
Bạn nào biết cách để thay đổi các tính chất của block nhanh hơn tí hok, chỉ cho mình với, hiiiii...
Thanks uuuuuuuuuu!!!!!!!
  • 0

#2 oizdoi_oi

oizdoi_oi

    biết dimlinear

  • Members
  • PipPipPipPipPip
  • 306 Bài viết
Điểm đánh giá: 452 (tốt)

Đã gửi 19 December 2008 - 11:02 AM

Hi!!!
Mình có một số bản vẻ đang phải chỉnh sửa.
Trong đó có khá nhìu block, mà block thì lại chẳng có cách nào thay đổi được các tính chất của nó: màu sắc, nét...
Mún thay đổi pải vào từng block, tốn nhìu thời gian lắm .
Bạn nào biết cách để thay đổi các tính chất của block nhanh hơn tí hok, chỉ cho mình với, hiiiii...
Thanks uuuuuuuuuu!!!!!!!

bạn dùng Refedit là nhanh nhất
còn nếu block được tạo khi ở layer 0, hoặc byblock thì bạn dùng Fi rồi chọn block rồi chọn layer, net, màu....
  • 0
KTS không bao giờ chết đói...mà chỉ đói đến lúc chết!

#3 PUCH

PUCH

    biết vẽ circle

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

Đã gửi 19 December 2008 - 11:17 AM

bạn dùng Refedit là nhanh nhất
còn nếu block được tạo khi ở layer 0, hoặc byblock thì bạn dùng Fi rồi chọn block rồi chọn layer, net, màu....



thank bồ nhìu ngen!
mình sẻ thử xem sao
có ji nhờ bồ chỉ thêm
hiiiiiiiiii
  • 0

#4 PUCH

PUCH

    biết vẽ circle

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

Đã gửi 19 December 2008 - 11:23 AM

thank bồ nhìu ngen!
mình sẻ thử xem sao
có ji nhờ bồ chỉ thêm
hiiiiiiiiii

Hi!
Mình đã thử nhưng như vậy cũng hok nhanh hơ n mấy bồ ơi!
Vì mấy cái block này nhỏ xíu hà : cửa, đèn, cây.. thui
Có ai bit cách nào nhanh hơn ko, chỉ mình với
Ví dụ như cần thay đổi màu sắc của các block này giống nhau hay các block đều có cùg một nét.....
Thank nhìu ngen!!!!!!!!
  • 0

#5 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 19 December 2008 - 11:28 AM

Hi!
Mình đã thử nhưng như vậy cũng hok nhanh hơ n mấy bồ ơi!
Vì mấy cái block này nhỏ xíu hà : cửa, đèn, cây.. thui
Có ai bit cách nào nhanh hơn ko, chỉ mình với
Ví dụ như cần thay đổi màu sắc của các block này giống nhau hay các block đều có cùg một nét.....
Thank nhìu ngen!!!!!!!!

Bạn dùng thử đoạn Code này xem sao :
Tên lệnh là BC

; Doi mau Block (Khong can Explode)
;*******************************************************************************
*********
; ERROR HANDLER
(defun err-ubc (s) ; If an error (such as CTRL-C) occurs
; while this command is active...
(if (/= s "Function cancelled")
(princ (strcat "\nError: " s))
)
(setq *error* olderr) ; Restore old *error* handler
(princ)
);err-ubc

(DEFUN C:BC (/ BLK CBL CBL2 C ACL ALY NLY NCL)

(setq olderr *error* *error* err-ubc)
(initget "?")
(while
(or (eq (setq C (getint "\nMau Blocks moi/: ")) "?")
(null C)
(> C 256)
(< C 0)
);or
(textscr)
(princ "\n ")
(princ "\n So hieu mau | Ghi chu ")
(princ "\n ________________|____________________")
(princ "\n | ")
(princ "\n 0 | ")
(princ "\n 1 | Red ")
(princ "\n 2 | Yellow ")
(princ "\n 3 | Green ")
(princ "\n 4 | Cyan ")
(princ "\n 5 | Blue ")
(princ "\n 6 | Magenta ")
(princ "\n 7 | White ")
(princ "\n 8...255 | -Varies- ")
(princ "\n 256 | ")
(princ "\n \n\n\n")
(initget "?")
);while


(PROMPT "\n >Chon Blocks se thay doi mau: ")

(SETQ SS (SSGET '((0 . "INSERT"))))
(SETQ K 0)
(WHILE (< K (SSLENGTH SS))
(setq CBL (tblsearch "BLOCK" (CDR (ASSOC 2 (ENTGET (SETQ BLK (SSNAME SS K)))))))
(SETQ CBL2 (CDR (ASSOC -2 CBL)))
(WHILE (BOUNDP 'CBL2)
(SETQ EE (ENTGET CBL2))

;Update layer value
(SETQ NCL (CONS 62 C))
(SETQ ACL (ASSOC 62 EE))
(IF (= ACL nil)
(SETQ NEWE (APPEND EE (LIST NCL)))
(SETQ NEWE (SUBST NCL ACL EE))
);if
(ENTMOD NEWE)

(SETQ CBL2 (ENTNEXT CBL2))
);end while
(ENTUPD BLK)
(SETQ K (1+ K))
);end while
(setq *error* olderr)
(princ)
);end updblkcl

Chúc thành công. :cheers:
  • 0

#6 PUCH

PUCH

    biết vẽ circle

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

Đã gửi 19 December 2008 - 01:27 PM

thank bạn Teu_NV nhìu
nhưng mình thử làm thì xuất hiện dòng thông báo {BCLOSE ** BCLOSE command only allowed in Block Editor. **}
sau đó mình thử vào Block Editor thực hiện lệnh thì Block Editor tự đóng lại
bạn kiểm tra lại dùm mình tí
thank again!!!!hihiiiiiiiiii
  • 0

#7 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 24 December 2008 - 05:25 PM

thank bạn Teu_NV nhìu
nhưng mình thử làm thì xuất hiện dòng thông báo {BCLOSE ** BCLOSE command only allowed in Block Editor. **}
sau đó mình thử vào Block Editor thực hiện lệnh thì Block Editor tự đóng lại
bạn kiểm tra lại dùm mình tí
thank again!!!!hihiiiiiiiiii

Chào bạn puch,
Bạn dùng thử lisp này.
Đây là lisp thay đổi các thuộc tính của một block mình viết cho một người bạn sử dụng. Trong block có hai thuộc tính là thửa số và diện tích. Các thuộc tính này được gán cho các giá trị số. Việc đổi màu được thực hiện bằng cách chuyển block sang lớp mới có màu gán trước. Mình có sử dụng các dialog để nhập liệu và lựa chọn cho thuận tiện. Các file dcl là test5.dcl, test6.dcl, test7.dcl, test8.dcl. Bạn phải copy chúng về cùng thư mục với file lsp là test5.lsp.
Sau đó load file test5.lsp và chạy bằng lệnh test5.
Vì mình viết cho người bạn nên các giá trị default trong hộp thoại mình cho trước để tránh nhầm lẫn, bạn có thể thay lại các giá trị này trong file dcl cho phù hợp với bạn.
Nếu bạn không nhập giá trị đúng của các biến này, lisp sẽ không chạy.
Chúc bạn thành công. Nếu có vấn đề gì khi chạy bạn post lên để trao đổi, hoặc bạn post file gốc và file kết quả bạn muốn để mình xem lại nhé.
Cám ơn bạn.
http://www.cadviet.c...files/Test5.lsp
http://www.cadviet.c...files/Test5.dcl
http://www.cadviet.c...files/Test6.dcl
http://www.cadviet.c...files/Test7.dcl
http://www.cadviet.c...files/Test8.dcl
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#8 PUCH

PUCH

    biết vẽ circle

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

Đã gửi 25 December 2008 - 01:06 PM

Bạn thử dùng lệnh BATTMAN chưa.

HI!!!!
Lệnh Battman đó như thế nào vậy bạn
Nhờ bạn chỉ giúp tí
THankss!
  • 0

#9 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 25 December 2008 - 02:25 PM

HI!!!!
Lệnh Battman đó như thế nào vậy bạn
Nhờ bạn chỉ giúp tí
THankss!

Để hiểu lệnh Battman là như thế nào, bạn hãy vào chức năng tìm kiếm của diễn đàn
Gõ chữ Battman vào ô tìm kiếm.
Bạn sẽ tìm được cái bạn cần.
Chúc thành công.
  • 0

#10 TKSVN

TKSVN

    biết pan

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

Đã gửi 22 August 2009 - 11:03 AM

thank bạn Teu_NV nhìu
nhưng mình thử làm thì xuất hiện dòng thông báo {BCLOSE ** BCLOSE command only allowed in Block Editor. **}
sau đó mình thử vào Block Editor thực hiện lệnh thì Block Editor tự đóng lại
bạn kiểm tra lại dùm mình tí
thank again!!!!hihiiiiiiiiii

lisp này dùng rất được mà, dòng thông báo của bạn là do bạn chưa load lisp vào cad đó, bạn thử lại nhé
  • 0

#11 TKSVN

TKSVN

    biết pan

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

Đã gửi 22 August 2009 - 11:08 AM

Bạn dùng thử đoạn Code này xem sao :
Tên lệnh là BC

cảm ơn nhiều nhé, minh đang tìm lisp này, mãi bây h mới thấy, làm phiền bạn thêm chút nữa, lệnh này chỉ áp dụng đc cho đối tượng block 1 lần, nếu với nhiều block gộp lại thành 1 block mới (hoặc nhiều cấp nữa ) thì lệnh không có hiệu lực, bạn có the sửa giúp mình lại đoạn lisp đc không ??
cảm ơn nhiều!!!
  • 0

#12 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 22 August 2009 - 01:03 PM

cảm ơn nhiều nhé, minh đang tìm lisp này, mãi bây h mới thấy, làm phiền bạn thêm chút nữa, lệnh này chỉ áp dụng đc cho đối tượng block 1 lần, nếu với nhiều block gộp lại thành 1 block mới (hoặc nhiều cấp nữa ) thì lệnh không có hiệu lực, bạn có the sửa giúp mình lại đoạn lisp đc không ??
cảm ơn nhiều!!!

Bạn đã post bài 1 nội dung nhưng ở 3 chủ đề khác nhau
Hiệu chỉnh Block

Viết Lisp theo yêu cầu

Và bây giờ thì ở chủ đề này nữa


thì không biết yêu cầu của bạn nằm ở chử đề nào nhỉ?
Mời bạn vào đây :
http://www.cadviet.c...amp;#entry70327
  • 0

#13 TKSVN

TKSVN

    biết pan

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

Đã gửi 22 August 2009 - 01:28 PM

Bạn đã post bài 1 nội dung nhưng ở 3 chủ đề khác nhau
Hiệu chỉnh Block

Viết Lisp theo yêu cầu

Và bây giờ thì ở chủ đề này nữa
thì không biết yêu cầu của bạn nằm ở chử đề nào nhỉ?
Mời bạn vào đây :
http://www.cadviet.c...amp;#entry70327

xin lỗi nhé, bởi tôi có khó khăn về vấn đề block, nên tôi post bài ở cả 3 cũng đc, còn nếu bạn ko muốn giúp đỡ cũng đc, ko sao cả, nhưng bạn đừng nên lên giọng như vậy, khó nghe quá
  • 0

#14 huong259

huong259

    biết lệnh refedit

  • Members
  • PipPipPipPipPipPipPip
  • 596 Bài viết
Điểm đánh giá: 350 (khá)

Đã gửi 22 August 2009 - 01:43 PM

Qui định của diễn đàn là thế rồi bạn nên theo.Viết cùng nội dung ở nhiều mục khác nhau làm loãng nội dung, gây khó khăn cho người tìm kiếm. Nếu lâu ko thấy người trả lời, bạn có thể nhắc lại câu hỏi một hai lần cũng được mà!
  • 0

#15 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 22 August 2009 - 01:55 PM

xin lỗi nhé, bởi tôi có khó khăn về vấn đề block, nên tôi post bài ở cả 3 cũng đc, còn nếu bạn ko muốn giúp đỡ cũng đc, ko sao cả, nhưng bạn đừng nên lên giọng như vậy, khó nghe quá

Xin lỗi bạn, mình không lên giọng gì cả. Tue_NV chỉi nói lên sự thật thôi. Sự thật nó khó nghe, nhưng mà sự thật thì bạn phải tôn trọng và phải nghe thôi, không còn cách nào khác
Bạn nói bạn post bài ở cả 3 cũng được. Nói thế mà nghe được à? :bigsmile:
Bạn phải nên tôn trọng nội quy của diễn đàn chứ?

Nhắc nhở bạn dacvien2007:

Bạn đã post 4 bài có nội dung giống nhau ở 4 topic khác nhau! Nếu ai cũng tuỳ tiện như vậy, tính tổ chức của diễn đàn sẽ bị phá vỡ. Khi ai đó muốn tìm hiểu về một vấn đề nào đó, cũng như các vấn đề khác có liên quan sẽ không thuận tiện vì chúng nằm rải rác khắp nơi. Trong khi các quản trị viên cố gắng sắp xếp, thu gom các bài viết có nội dung tương tự nhau về cùng một topic thì bạn làm ngược lại!

Bạn đừng nghĩ rằng post lung tung ở nhiều nơi sẽ có nhiều người quan tâm giúp bạn. Đúng là có nhiều người quan tâm thật, nhưng những người "quan tâm đặc biệt" chính các admin và mod! Thật tình chúng tôi không muốn, nhưng buộc phải làm cái việc bất đắc dĩ là del tất cả các bài của bạn có trùng nội dung như đã nói trên.

Bạn hãy cân nhắc kỹ, vấn đề bạn nêu nên ở chỗ nào là hợp lý nhất và có thể post lại, nhưng chỉ duy nhất ở chỗ ấy thôi. Nếu lâu quá không thấy reply, bạn có thể nhắc lại ngay trong topic đó. Tuyệt đối không được mở thêm topic mới cho cùng vấn đề trên. Ngoài ra, cũng xin lưu ý với bạn rằng, nêu vấn đề là quyền của bạn, nhưng có nhận được reply hay không là quyền của nhiều members khác. Lý do có thể rất nhiều: vấn đề khó quá, vấn đề không phổ biến đối với đa số, vấn đề đã được đề cập và giải quyết rồi, người ta đang bận v.v... và cũng có thể là do chính bạn diễn đạt chưa rõ ràng.

Lời nhắc nhở đối với bạn dacvien2007 cũng là nhắc chung cho tất cả mọi người. Vì sự phát triển của CadViet (càng phát triển càng cần phải có tính tổ chức tốt), mong tất cả các bạn hãy hiểu, thông cảm và cẩn trọng hơn khi post bài.


  • 2

#16 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 24 August 2009 - 12:14 PM

Tôi thấy lúc này, nhiều người cứ mở topic lung tung quá, đề nghị admin xem bài nào giống nhau ở các topic khác nhau, thì xóa ngay tức khắc và nhắc nhở các thành viên mới gia nhập biết điều này.
  • 1

#17 mokara30

mokara30

    biết zoom

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

Đã gửi 28 June 2011 - 09:21 AM

Chào bạn puch,
Bạn dùng thử lisp này.
Đây là lisp thay đổi các thuộc tính của một block mình viết cho một người bạn sử dụng. Trong block có hai thuộc tính là thửa số và diện tích. Các thuộc tính này được gán cho các giá trị số. Việc đổi màu được thực hiện bằng cách chuyển block sang lớp mới có màu gán trước. Mình có sử dụng các dialog để nhập liệu và lựa chọn cho thuận tiện. Các file dcl là test5.dcl, test6.dcl, test7.dcl, test8.dcl. Bạn phải copy chúng về cùng thư mục với file lsp là test5.lsp.
Sau đó load file test5.lsp và chạy bằng lệnh test5.
Vì mình viết cho người bạn nên các giá trị default trong hộp thoại mình cho trước để tránh nhầm lẫn, bạn có thể thay lại các giá trị này trong file dcl cho phù hợp với bạn.
Nếu bạn không nhập giá trị đúng của các biến này, lisp sẽ không chạy.
Chúc bạn thành công. Nếu có vấn đề gì khi chạy bạn post lên để trao đổi, hoặc bạn post file gốc và file kết quả bạn muốn để mình xem lại nhé.
Cám ơn bạn.
http://www.cadviet.c...files/Test5.lsp
http://www.cadviet.c...files/Test5.dcl
http://www.cadviet.c...files/Test6.dcl
http://www.cadviet.c...files/Test7.dcl
http://www.cadviet.c...files/Test8.dcl


khi sử dụng nó báo lỗi như thế này nè pac phamthanhbinh "the Test5.dcl file could not be loaded!"
  • 0

#18 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 28 June 2011 - 10:12 AM

Các file dcl là test5.dcl, test6.dcl, test7.dcl, test8.dcl. Bạn phải copy chúng về cùng thư mục với file lsp là test5.lsp.
Sau đó load file test5.lsp và chạy bằng lệnh test5.

Hình như nếu *.dcl không được khai báo đường dẫn thì không load được mà bác? Trong file test5.lsp đâu thấy bác khai báo đường dẫn hè! Hay bác gom thành vlx cho khỏe?
  • 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.