Đến nội dung


Hình ảnh
- - - - -

[yêu cầu] sửa lisp lựa chọn đầu arrow của leader


  • Please log in to reply
12 replies to this topic

#1 proconeng86

proconeng86

    biết lệnh break

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

Đã gửi 20 June 2014 - 10:21 PM

Trước đây mình có được 2 bạn trên cadviet viết giúp 1 lisp chỉnh sửa đầu arrow của leader rất là hay, rất trực quan. Khi làm việc mình muốn hay chọn kích thước các đầu này, toàn phải vào properties, mà không hiểu sao nó hiện lên để lựa chọn kích thước đầu leader rất chậm, làm mất thời gian. do đó mình mong các bạn giúp mình chỉnh thêm cho lisp này 1 chút. Cụ thể như sau:

 - gõ lệnh, lựa chọn những leader muốn đổi đầu

 - hiện bảng lựa chọn loại đầu (đến đây vẫn là lisp cũ)

 - hiện lên 1 bảng khác trên màn hình (như bảng lựa chọn đầu leader) là bảng chọn kích thước cho đầu leader. chỉ cần hiện 4 giá trị hay dùng: 0.25; 0.5; 1; 2. Ngoài 4 giá trị này ra thì mình có thể gõ giá trị bất kì vào được

 - kết thúc lisp

 

Ngoài ra các bạn tách riêng phần lựa chọn kích thước đầu leader ra 1 lisp khác để dùng cho trường hợp các leader có arrow đúng rồi

 

Mình cám ơn nhiều

 

http://www.mediafire...dau_leader.lsp 


  • 0

#2 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 20 June 2014 - 10:50 PM

Nếu tôi nhớ không nhầm thì đây là lisp tôi viết? Nếu đúng vậy thì sao bạn không hỏi ở đó mà mở topic mới làm chi cho nhạt forum.


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


#3 proconeng86

proconeng86

    biết lệnh break

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

Đã gửi 20 June 2014 - 11:30 PM

Nếu tôi nhớ không nhầm thì đây là lisp tôi viết? Nếu đúng vậy thì sao bạn không hỏi ở đó mà mở topic mới làm chi cho nhạt forum.

 

Xin lỗi bạn, tại lâu rồi nên mình cũng không nhớ lắm, mà mình cũng không tìm được topic đó nên mới tạo topic mới. bạn thông cảm

Thế bạn Hạ giúp mình cái nha, mình cám ơn nhiều 


  • 0

#4 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 22 June 2014 - 08:23 AM

Tôi viết riêng chứ không khoái gộp chung. Lisp thay đổi ArrowheadSize của Dimension/Leader.

(defun C:HA( / txt arr)
 (princ "\nChon cac Dim/Leader can thay doi kich thuoc Arrow...")
 (ssget (list (cons 0 "LEADER,DIMENSION")))
 (initget "0.25 0.5 1 2 K")
 (setq txt (getkword "\nChon kich thuoc Arrow [0.25/0.5/1/2/Khac]: "))
 (if (= txt "K")
  (setq arr (getreal "\nNhap kich thuoc Arrow: "))
  (setq arr (atof txt)))
 (vlax-for obj (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object)))
  (vla-put-ArrowheadSize obj arr)))
 


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


#5 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 22 June 2014 - 10:09 AM

CAD cũng có lệnh DOV (DIMOVERRIDE) tự động lọc ra DIMENSION, LEADER và thay đổi Arrowsize (và các thứ khác) của dim, leader. Cứ mỗi thứ thay đổi thế này lại phải mất 1 lisp.... Lạm dụng vô Lisp quá không hay ............


  • 0

#6 proconeng86

proconeng86

    biết lệnh break

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

Đã gửi 22 June 2014 - 10:40 AM

Tôi viết riêng chứ không khoái gộp chung. Lisp thay đổi ArrowheadSize của Dimension/Leader.

(defun C:HA( / txt arr)
 (princ "\nChon cac Dim/Leader can thay doi kich thuoc Arrow...")
 (ssget (list (cons 0 "LEADER,DIMENSION")))
 (initget "0.25 0.5 1 2 K")
 (setq txt (getkword "\nChon kich thuoc Arrow [0.25/0.5/1/2/Khac]: "))
 (if (= txt "K")
  (setq arr (getreal "\nNhap kich thuoc Arrow: "))
  (setq arr (atof txt)))
 (vlax-for obj (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object)))
  (vla-put-ArrowheadSize obj arr)))
 

 

Lisp này là ngon rồi. cám ơn bạn Ha nhé  :)


  • 0

#7 proconeng86

proconeng86

    biết lệnh break

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

Đã gửi 22 June 2014 - 10:43 AM

CAD cũng có lệnh DOV (DIMOVERRIDE) tự động lọc ra DIMENSION, LEADER và thay đổi Arrowsize (và các thứ khác) của dim, leader. Cứ mỗi thứ thay đổi thế này lại phải mất 1 lisp.... Lạm dụng vô Lisp quá không hay ............

 

Mình cũng thử lệnh DOV nhưng mình không hiểu cho lắm, hình như nó đưa về mặc định là 1 chứ đâu có cho chọn kích thước arrow đâu. Có lisp dùng vẫn nhanh hơn chứ bạn, nhiều khi lệnh cad phải lựa chọn nhiều mất công hơn chứ


  • 0

#8 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 22 June 2014 - 11:14 AM

Mình cũng thử lệnh DOV nhưng mình không hiểu cho lắm, hình như nó đưa về mặc định là 1 chứ đâu có cho chọn kích thước arrow đâu. Có lisp dùng vẫn nhanh hơn chứ bạn, nhiều khi lệnh cad phải lựa chọn nhiều mất công hơn chứ

 

1. / Có lisp thì nhanh hơn, nhiều lisp quá thì đâm ra "loạn", một là mất công nhớ lệnh, hai là nhiều lisp có thể gây xung đột cho nhau 

 

2./ Lệnh DOV trong TH thay đổi Arrow size của dim,leader như sau:

 

Command:  DOV

DIMOVERRIDE

Enter dimension variable name to override or [Clear overrides]: dimasz

Enter new value for dimension variable <100.00>: 500

 

Enter dimension variable name to override:

Select objects: Specify opposite corner:  5 found -> Quét chọn đối tượng

Select objects: -> Enter

 

CAD tự động lọc ra Dim, leader để thay đổi Arrow size

 

Cách nữa: Ctrol+1 -> Chỉnh chu 1 cái Leader cho hoàn chỉnh Arowsize, ..... rồi Lệnh MA kết hợp Filter để thay đổi hàng loạt cho Leader rất nhanh đó bạn


  • 1

#9 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 22 June 2014 - 11:31 AM

Bác Tue_NV công nhận rành lệnh Cad thiệt! Nhiều khi mình không rành lệnh Cad, cứ chúi mũi viết lisp >> dã tràng!  :D


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


#10 proconeng86

proconeng86

    biết lệnh break

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

Đã gửi 22 June 2014 - 04:02 PM

1. / Có lisp thì nhanh hơn, nhiều lisp quá thì đâm ra "loạn", một là mất công nhớ lệnh, hai là nhiều lisp có thể gây xung đột cho nhau 

 

2./ Lệnh DOV trong TH thay đổi Arrow size của dim,leader như sau:

 

Command:  DOV

DIMOVERRIDE

Enter dimension variable name to override or [Clear overrides]: dimasz

Enter new value for dimension variable <100.00>: 500

 

Enter dimension variable name to override:

Select objects: Specify opposite corner:  5 found -> Quét chọn đối tượng

Select objects: -> Enter

 

CAD tự động lọc ra Dim, leader để thay đổi Arrow size

 

Cách nữa: Ctrol+1 -> Chỉnh chu 1 cái Leader cho hoàn chỉnh Arowsize, ..... rồi Lệnh MA kết hợp Filter để thay đổi hàng loạt cho Leader rất nhanh đó bạn

 

Do không phải là leader nào cũng có arrow size giống nhau nên mình thấy dùng lisp vẫn tiện hơn.

Lệnh DOV mình thấy hơi loằng ngoằng, phải gõ cả DIMASZ j nữa, thế còn khó nhớ hơn là lisp

Còn cách sau của bạn mình chưa hiểu lệnh MA rồi thì Filter kiểu nào nhỉ?


  • 0

#11 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 22 June 2014 - 04:25 PM

Do không phải là leader nào cũng có arrow size giống nhau nên mình thấy dùng lisp vẫn tiện hơn.

Lệnh DOV mình thấy hơi loằng ngoằng, phải gõ cả DIMASZ j nữa, thế còn khó nhớ hơn là lisp

Còn cách sau của bạn mình chưa hiểu lệnh MA rồi thì Filter kiểu nào nhỉ?

Chỉnh 1 Leader/Dimension có Arrowheadsize theo ý muốn. Sau đó MA thằng này cho các thằng khác >> tất cả như ý.


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


#12 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 22 June 2014 - 04:42 PM

Do không phải là leader nào cũng có arrow size giống nhau nên mình thấy dùng lisp vẫn tiện hơn.

Lệnh DOV mình thấy hơi loằng ngoằng, phải gõ cả DIMASZ j nữa, thế còn khó nhớ hơn là lisp

Còn cách sau của bạn mình chưa hiểu lệnh MA rồi thì Filter kiểu nào nhỉ?

1./ CAD 2008 có cung cấp tên biến hệ thống DIMASZ ngay dưới bảng Properties (Ctrol+1) nên không khó nhớ

 

2./ Matchprop (MA)+ Filter kết hợp -> Khi chọn đối tượng đích (lệnh MA) ở dòng Select object : gõ 'fi ->(bảng Filter hiện ra) thực hiện thao tác lọc -> Lưu lại bộ chọn để lấn sau sử dụng -> Quét chọn Leader theo bộ lọc ........

 

3./ Về quan điểm mỗi người một khác: Mình thì không thích dùng "dao mổ trâu để giết con gà", vì bộ chương trình lớn của mình lập ra có nhiều lệnh, đã mất công nhớ các lệnh lớn rồi, các lệnh nhỏ nhỏ để "giết gà" thì mình tận dụng các lệnh của CAD để xử lý, vì như đã nói là mất công nhớ lệnh, mất công nhớ tác dụng của lệnh, mất công có thể gây xung đột với Lisp hiện có

 

Good weekend!


  • 1

#13 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 22 June 2014 - 11:32 PM

Nếu đã dùng bảng thuộc tính thì cũng k cần Filter nữa, vì bản thân bảng này đã có filer object type trong danh sách đối tượng rồi ^^

Thêm nữa, chủ topic nên quen với cách thiết lập các dimstyle, dùng cái nào ứng với style nào thì làm chuẩn chỉ ngay từ đầu.  (Qleader mặc định lấy arrow size theo Dimstyle hiện hành nhé). Manh mún như vậy sau này nhặt sâu cũng mệt lắm ý


  • 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