Đến nội dung


Hình ảnh
- - - - -

[Đã xong] Lisp chọn đối tượng thì các style của nó hiện hành


  • Please log in to reply
26 replies to this topic

#1 tranduyquang25111

tranduyquang25111

    biết vẽ ellipse

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

Đã gửi 03 June 2011 - 08:16 AM

Bác nào có lisp chọn nhanh dim, layer, text về thành dim, layer, text hiện hành không, share em với. Em đã tìm với từ khóa chuyển dim bất kỳ về hiện hành nhưng không thấy. Mong các bác giúp hộ.
  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 03 June 2011 - 08:23 AM

Bác nào có lisp chọn nhanh dim, layer, text về thành dim, layer, text hiện hành không, share em với. Em đã tìm với từ khóa chuyển dim bất kỳ về hiện hành nhưng không thấy. Mong các bác giúp hộ.

Không hiểu ý bạn. Chọn ... về thành ? Bạn nói rõ hơn ý tưởng đi :)
  • 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


#3 tranduyquang25111

tranduyquang25111

    biết vẽ ellipse

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

Đã gửi 03 June 2011 - 08:30 AM

Không hiểu ý bạn. Chọn ... về thành ? Bạn nói rõ hơn ý tưởng đi :)

Hì, lại gặp bạn Ket rồi. Ý mình là lisp chọn đối tượng dim hoặc layer, text bất kỳ. Và chuyển nó thành current. Ví dụ: lệnh doi, sẽ cho mình chọn 1 dim style, hoặc layer hoặc text style. Sau khi pick vào, thì nó lập tức chuyển thành dim style hoặc layer, text style hiện hành.
  • 0

#4 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 03 June 2011 - 08:40 AM

Hì, lại gặp bạn Ket rồi. Ý mình là lisp chọn đối tượng dim hoặc layer, text bất kỳ. Và chuyển nó thành current. Ví dụ: lệnh doi, sẽ cho mình chọn 1 dim style, hoặc layer hoặc text style. Sau khi pick vào, thì nó lập tức chuyển thành dim style hoặc layer, text style hiện hành.

Hoặc là bạn vẫn chưa trình bày rõ ý đồ, hoặc là mình kém quá, đọc n hok hiểu ^^
Bạn chọn đối tượng Dim,Text thì ok rồi, còn chọn layer là sao nhỉ ??
Mình nói lại ý tưởng của bạn thế này, bạn xem có phải không :
Chọn 1 đối tượng => Lấy Layer, Hoặc Dimstyle, Hoặc Text Style của đối tượng đó làm Layer/Dímtyle/Text Style hiện hành ?


P/S : mình ra công trường, bạn chịu khó chờ, các bác khác đọc được sẽ giúp bạn ngay đấy :wub:
  • 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


#5 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 June 2011 - 09:24 AM

Hì, lại gặp bạn Ket rồi. Ý mình là lisp chọn đối tượng dim hoặc layer, text bất kỳ. Và chuyển nó thành current. Ví dụ: lệnh doi, sẽ cho mình chọn 1 dim style, hoặc layer hoặc text style. Sau khi pick vào, thì nó lập tức chuyển thành dim style hoặc layer, text style hiện hành.

Bạn thử cái này xem

(defun c:CLA()(command "clayer" (cdr(assoc 8 (entget(car(entsel "\nChon doi tuong lay layer hien hanh:")))))))
(defun c:CDI()(command "-dimstyle" "r" ""))
(defun c:CTE()(command "textstyle" (cdr(assoc 7 (entget(car(entsel "\nChon doi tuong lay textstyle hien hanh:")))))))

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

#6 tranduyquang25111

tranduyquang25111

    biết vẽ ellipse

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

Đã gửi 03 June 2011 - 09:29 AM

Hoặc là bạn vẫn chưa trình bày rõ ý đồ, hoặc là mình kém quá, đọc n hok hiểu ^^
Bạn chọn đối tượng Dim,Text thì ok rồi, còn chọn layer là sao nhỉ ??
Mình nói lại ý tưởng của bạn thế này, bạn xem có phải không :
Chọn 1 đối tượng => Lấy Layer, Hoặc Dimstyle, Hoặc Text Style của đối tượng đó làm Layer/Dímtyle/Text Style hiện hành ?


P/S : mình ra công trường, bạn chịu khó chờ, các bác khác đọc được sẽ giúp bạn ngay đấy :wub:

Đúng rồi, tại mình nói mơ hồ quá. Chính xác là như thế bạn Ket à. Bác hay pro nào viết giúp mình cái lisp đó được không. Thanks!
  • 0

#7 tranduyquang25111

tranduyquang25111

    biết vẽ ellipse

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

Đã gửi 03 June 2011 - 09:31 AM

Bạn thử cái này xem
(defun c:CLA()(command "clayer" (cdr(assoc 8 (entget(car(entsel "\nChon doi tuong lay layer hien hanh:")))))))

Bác viết để pick dim style hoặc text style được không? Ý tưởng như bài viết trên của mình. Thanks!
  • 0

#8 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 June 2011 - 09:39 AM

Bác viết để pick dim style hoặc text style được không? Ý tưởng như bài viết trên của mình. Thanks!

Bạn down lại code ở trên
  • 1
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!

#9 tranduyquang25111

tranduyquang25111

    biết vẽ ellipse

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

Đã gửi 03 June 2011 - 10:44 AM

Bạn down lại code ở trên

Cái text style hình như chưa được bác à. Em chọn mà nó không chuyển thành hiện hành. Hai cái dim và layer thì good rồi bác à.
  • 0

#10 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 June 2011 - 11:49 AM

Cái text style hình như chưa được bác à. Em chọn mà nó không chuyển thành hiện hành. Hai cái dim và layer thì good rồi bác à.

Mình nhầm chút bạn down lại code trên mình đã sửa rồi.
  • 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!

#11 victor85

victor85

    biết lệnh stretch

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

Đã gửi 29 March 2012 - 04:55 PM

Các bạn có thể mở rộng thêm chọn nhanh đối tượng để lấy line type hiện hành nữa ko. Mình tìm trên diễn đàn mà ko thấy, hic!
  • 0

#12 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 29 March 2012 - 05:06 PM


(setvar "celtype" (cdr (assoc 6 (entget (car (entsel))))))

  • 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


#13 Chiron

Chiron

    biết dimradius

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

Đã gửi 30 March 2012 - 08:13 AM

Hì, lại gặp bạn Ket rồi. Ý mình là lisp chọn đối tượng dim hoặc layer, text bất kỳ. Và chuyển nó thành current. Ví dụ: lệnh doi, sẽ cho mình chọn 1 dim style, hoặc layer hoặc text style. Sau khi pick vào, thì nó lập tức chuyển thành dim style hoặc layer, text style hiện hành.

Chiron không hiểu tại sao phải viết lisp mới? Nếu cần chuyển đối tượng qua layer hiện hành có thể dùng lệnh laycur, còn để chuyển qua layer của đối tượng được chọn thì có thể dùng lệnh laymcur hoặc dùng lệnh ma để copy thuộc tính của đối tượng mà?
  • 0

#14 victor85

victor85

    biết lệnh stretch

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

Đã gửi 30 March 2012 - 05:05 PM


(setvar "celtype" (cdr (assoc 6 (entget (car (entsel))))))



(setvar "celtype" (cdr (assoc 6 (entget (car (entsel))))))


Cái này ketxu viết dùng ntn vậy?
  • 0

#15 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 30 March 2012 - 05:23 PM




Cái này ketxu viết dùng ntn vậy?

Hề hề hề,
Copy nó dán vào dòng command và nhấn Enter.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#16 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 30 March 2012 - 05:23 PM

Cái này ketxu viết dùng ntn vậy?

Bạn copy dòng này (setvar "celtype" (cdr (assoc 6 (entget (car (entsel))))))
và paste vào Command
Hoặc là viết thành code như vầy :

(defun c:Lty()
(setvar "celtype" (cdr (assoc 6 (entget (car (entsel))))))
)

Hề hề hề,bác Bình post bài nhanh hơn em mấy mili giây. :D
  • 0

#17 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 30 March 2012 - 09:04 PM

Để ý lỗi nếu Linetype là bylayer.
(setvar "celtype" (cdr (assoc 6 (entget (car (entsel))))))
Dùng cái này thì tránh được lỗi trên
(vlax-get-property (vlax-ename->vla-object (car (entsel))) 'Linetype)
  • 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.


#18 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 30 March 2012 - 09:28 PM

Cảm ơn bác ĐVH đã nhắc nhở ^^ :
=> (setvar "celtype" (cond ((cdr (assoc 6 (entget (car (entsel))))))("BYLAYER")))
hoặc
(setvar "celtype" (vlax-get-property (vlax-ename->vla-object (car (entsel))) 'Linetype) )
  • 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


#19 kloud7

kloud7

    biết zoom

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

Đã gửi 31 March 2012 - 11:55 AM

Em copy lisp của bác vào thì một số lisp có sẵn của em (add cùng 1 lisp) bị lỗi, có bác nào biết tại sao ko. Hiện tượng này xảy ra với 1 số lisp khác nữa nhưng em vẫn chẳng biết khắc phục ntn :)
  • 0

#20 kloud7

kloud7

    biết zoom

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

Đã gửi 31 March 2012 - 12:05 PM

Thiếu 01 dấu ngoặc ")" hjhj.
  • 0