Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
33 replies to this topic

#21 leejang

leejang

    biết lệnh move

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

Đã gửi 02 May 2011 - 06:08 AM

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)
)
)



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
  • -1

#22 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 02 May 2011 - 07:27 AM

Bạn đang dùng CAD Ver mấy nhỉ ?
Bạn thử dùng cái nyaf xem còn lỗi k
(defun C:dc()
(vl-load-com)
(setq txtcol 2 lcol 30)
(setq colorObj (vla-getinterfaceobject (vlax-get-acad-object) (strcat "AutoCAD.AcCmColor." (substr (getvar "acadver") 1 2))))
(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)
)
)

  • -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


#23 leejang

leejang

    biết lệnh move

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

Đã gửi 02 May 2011 - 12:57 PM

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)
)
)


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
  • -1

#24 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 02 May 2011 - 01:42 PM

LeeGiang không đọc bài trên của mình à ???? :unsure:
  • 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


#25 cancer_xd

cancer_xd

    biết lệnh fillet

  • Members
  • PipPipPipPip
  • 207 Bài viết
Điểm đánh giá: 45 (tàm tạm)

Đã gửi 02 May 2011 - 01:47 PM

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ả
  • 0

#26 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 02 May 2011 - 09:15 PM

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 ??
  • 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


#27 xuanhaithanhhoa

xuanhaithanhhoa

    biết lệnh break

  • Members
  • PipPipPipPip
  • 223 Bài viết
Điểm đánh giá: 23 (tàm tạm)

Đã gửi 03 May 2011 - 12:48 AM

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.c...s/3/hhhhh_1.rar
  • 0

#28 phamngoctukts

phamngoctukts

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1107 Bài viết
Điểm đánh giá: 696 (tốt)

Đã gửi 03 May 2011 - 01:10 AM

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.c...s/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.
  • 0
Tất cả vì sự phát triển của diễn đàn ...
Cám ơn đừng nói lời suông mà hãy nhấn Hình đã gửi!

#29 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 03 May 2011 - 09:24 AM

Đ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.c...s/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..." :)
  • 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


#30 leejang

leejang

    biết lệnh move

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

Đã gửi 04 May 2011 - 09:07 AM

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
  • -1

#31 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 04 May 2011 - 09:52 AM

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 ?
  • 1

#32 leejang

leejang

    biết lệnh move

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

Đã gửi 15 May 2011 - 09:44 PM

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.c...doi_mau_dim.dwg
  • 0

#33 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 15 May 2011 - 10:20 PM

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.c...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:
  • 0

#34 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 15 May 2011 - 10:30 PM

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.c...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 :)
  • 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