Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
leejang

[Yêu cầu] lisp đổi màu tất cả các đường DIM ?

Các bài được khuyến nghị

ketxu    2.652

bạn ơi có thế dùng layer mặc định cho Dim mới được ko , mình thấy cái dim sau khi dùng lệnh dc nó ko giống layer nào cả

Bạn có theo dõi diễn biến yêu cầu, mục đích của lisp DC mình viết là gì không ??

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

bác ketxu cho em hỏi phát.cái lisp này của bác có thể chuyển màuc ủa DIM về layer hiện hành không ạ?e download cái lisp của bác về dùng.nhưng khi gõ DC thì toàn bộ DIM của em nó chuyển sang màu vàng khè hết cả mà trong khi đó layer hiện hành của em đang là màu đỏ.

http://www.cadviet.com/upfiles/3/hhhhh_1.rar

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
phamngoctukts    708

bác ketxu cho em hỏi phát.cái lisp này của bác có thể chuyển màuc ủa DIM về layer hiện hành không ạ?e download cái lisp của bác về dùng.nhưng khi gõ DC thì toàn bộ DIM của em nó chuyển sang màu vàng khè hết cả mà trong khi đó layer hiện hành của em đang là màu đỏ.

http://www.cadviet.com/upfiles/3/hhhhh_1.rar

Cái lisp trên ketxu viết là để đổi màu các đối tượng con trong dim như text, DimensionLine, ExtensionLine. Muốn đổi các đối tượng con trong dim về bylayer thì bạn sửa dòng (setq txtcol 2 lcol 30) -> (setq txtcol 256 lcol 256) sau đó dùng qselect đổi đổi đổi dim về layer mà bạn thích.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
ketxu    2.652

Đa số các bản vẽ là mình sửa các bản vẽ có sẵn, mà đường DIM khi in thì nên chọn nét mảnh cho đẹp bản vẽ, và trong một bản vẽ có rất nhiều kiểu Dim với các màu sắc khác nhau và có thể trùng với các màu cơ bản của đối tượng khác. Chính vì thế bài toán đặt ra là ta làm sao để các đường Dim đó có cùng một màu sắc đặc biệt và dễ dàng trong việc in ấn. VẬy các bác Pro có thể viết giúp em cái Lisp chuyển màu của các kiểu Dim có trong bản vẽ về màu 30, màu của text trong DIM là màu 02 được không ạ ? em cảm ơn các bác trước !

 

 

bạn ơi có thế dùng layer mặc định cho Dim mới được ko , mình thấy cái dim sau khi dùng lệnh dc nó ko giống layer nào cả

 

 

bác ketxu cho em hỏi phát.cái lisp này của bác có thể chuyển màuc ủa DIM về layer hiện hành không ạ?e download cái lisp của bác về dùng.nhưng khi gõ DC thì toàn bộ DIM của em nó chuyển sang màu vàng khè hết cả mà trong khi đó layer hiện hành của em đang là màu đỏ.

http://www.cadviet.com/upfiles/3/hhhhh_1.rar

Mình thật không muốn nói để các bạn phiền lòng, tuy nhiên nếu tình trạng này xảy ra liên tục thì buồn lắm. Trước khi down 1 lisp về các bạn cũng phải bỏ ra 1phút để đọc xem cái đó người ta viết vì mục đích gì, có phù hợp với yêu cầu của mình không. Cái lisp viết 1 theo yêu cầu 1 đằng, các bạn down tràn lan rồi kêu nó không phù hợp với yêu cầu 1 nẻo khác của các bạn, làm những người viết như mình cảm thấy k vui lắm. Thà các bạn cứ nói :"Mình cần giúp 1 lisp như sau:..." còn hay hơn là "Sao cái lisp của bạn nó không thế này..." :)

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
leejang    4

Thằng Mleader nó lại chẳng giống ai nhỉ ^^. bạn sửa lại như vầy (tách ra cho dễ)

(defun C:dc()
(vl-load-com)
(setq txtcol 2 lcol 30) 
(setq colorObj (vla-getinterfaceobject (vlax-get-acad-object) "AutoCAD.AcCmColor.17"))   
(foreach ent (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "X" '((0 . "DIMENSION,LEADER")))))))
(if (vlax-property-available-p ent 'TextColor)
(vla-put-Textcolor ent txtcol)
)
(if (vlax-property-available-p ent 'DimensionLinecolor)
(vla-put-DimensionLinecolor ent lcol)
)
(if (vlax-property-available-p ent 'ExtensionLinecolor)
(vla-put-ExtensionLinecolor ent lcol)
)

)
(foreach ent (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "X" '((0 . "MULTILEADER")))))))    
   (vla-put-ColorIndex colorObj ldrcol) 
   (vla-put-LeaderLineColor ent colorObj)
    (vla-put-ColorIndex colorObj txtcol) 
   (vla-put-TrueColor ent colorObj)
)
)

 

 

Lisp bị lỗi, Bác KETXU xem lại giúp em nhé !

Command: dc

; error: Automation Error. Problem in loading application

  • Vote giảm 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
gia_bach    1.442

Lisp bị lỗi, Bác KETXU xem lại giúp em nhé !

Command: dc

; error: Automation Error. Problem in loading application

Bác xem lại giúp em cái. E tải về chạy thì được báo lỗi sau :

Command: dc

error: Automation Error. Problem in loading application

 

Khi chạy thì e nhận được thông báo lỗi như sau :

Command: dc

error: Automation Error. Problem in loading application

 

leejang chỉ đuợc cái là "giỏi la làng" ?!

 

Bạn đang dùng CAD Ver mấy nhỉ ?

Bạn thử dùng cái nyaf xem còn lỗi k

.............

LeeGiang không đọc bài trên của mình à ???? :unsure:

 

@Ket : hàm (ssnamex (ssget "X" '((0 . "MULTILEADER")))) sẽ báo lỗi nếu bản vẽ ko có MULTILEADER.

do đó truớc khi gọi cần kiểm tra xem bản vẽ có MULTILEADER hay ko ?

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
leejang    4

Thằng Mleader nó lại chẳng giống ai nhỉ ^^. bạn sửa lại như vầy (tách ra cho dễ)

(defun C:dc()
(vl-load-com)
(setq txtcol 2 lcol 30) 
(setq colorObj (vla-getinterfaceobject (vlax-get-acad-object) "AutoCAD.AcCmColor.17"))   
(foreach ent (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "X" '((0 . "DIMENSION,LEADER")))))))
(if (vlax-property-available-p ent 'TextColor)
(vla-put-Textcolor ent txtcol)
)
(if (vlax-property-available-p ent 'DimensionLinecolor)
(vla-put-DimensionLinecolor ent lcol)
)
(if (vlax-property-available-p ent 'ExtensionLinecolor)
(vla-put-ExtensionLinecolor ent lcol)
)

)
(foreach ent (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "X" '((0 . "MULTILEADER")))))))    
   (vla-put-ColorIndex colorObj ldrcol) 
   (vla-put-LeaderLineColor ent colorObj)
    (vla-put-ColorIndex colorObj txtcol) 
   (vla-put-TrueColor ent colorObj)
)
)

hic ! Bác KETXU kiểm tra lại lisp xem nó chạy ok không và với đường Dim trong File em gửi thì lisp không thể đổi màu được. Bác chỉnh giúp em để nó đổi màu được mọi đường Dim với

File : http://www.cadviet.com/upfiles/3/doi_mau_dim.dwg

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Tue_NV    3.841

hic ! Bác KETXU kiểm tra lại lisp xem nó chạy ok không và với đường Dim trong File em gửi thì lisp không thể đổi màu được. Bác chỉnh giúp em để nó đổi màu được mọi đường Dim với

File : http://www.cadviet.com/upfiles/3/doi_mau_dim.dwg

Bác KETXU kiểm tra lại lisp xem nó chạy ok không?

->> Lisp chạy OK.

với đường Dim trong File em gửi thì lisp không thể đổi màu được

Đổi được chứ bạn! Màu TextColor là màu số 2. Màu DimensionLinecolor và ExtensionLinecolor là màu số 30.

Bác chỉnh giúp em để nó đổi màu được mọi đường Dim với

Bạn Ketxu chỉ cần chỉnh lại lỗi theo ý của anh giabach là được. (nên kiểm tra trong tập chọn có chứa đối tượng nào không, rồi mới làm công việc tiếp theo :rolleyes:

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
ketxu    2.652

hic ! Bác KETXU kiểm tra lại lisp xem nó chạy ok không và với đường Dim trong File em gửi thì lisp không thể đổi màu được. Bác chỉnh giúp em để nó đổi màu được mọi đường Dim với

File : http://www.cadviet.com/upfiles/3/doi_mau_dim.dwg

LeeGiang không theo dõi chính topic của mình mở ra rồi ?? Ketxu + bác Gia_bach nhắc Leegiang là update cái lisp mới Ket gửi ngay bên dưới, vậy mà đến giờ vẫn quote lại lisp cũ ? Bạn đang làm người nhiệt tình như mình nhụt chí đó.

Về câu hỏi lần này : bạn đang thực sự muốn làm khó mình ?? Các yêu cầu đổi đường dim thì bình thường,lisp chạy k vấn đề gì cả, tuy nhiên phần mũi tên bạn lại để User Arrow là Block (Block "Q"), nếu bạn muốn đổi đi thì hãy vào Block đó và sửa lại màu. Còn muốn đổi màu tất cả block thì lại là chuyện khác, ở bên yêu cầu khác, hoặc cũng có thể (mình chưa thử) kiểm tra 1 Block nào đó được user chọn làm Arrow để đổi màu, nhưng thiết nghĩ, tại sao lại tự làm khó mình như vậy :)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay


×