Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
bach1212

[Xin lisp] Chỉnh sửa nhanh Scale Hatch, đổi nhanh nhiều góc cho hàng loạt hatch

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

E tìm mãi mà không có ở đâu. Bác nào có lisp như thế cho e xin với ự....Chỉnh sửa nhanh Scale Hatch, đổi nhanh nhiều góc cho hàng loạt hatch

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

E tìm mãi mà không có ở đâu. Bác nào có lisp như thế cho e xin với ự....Chỉnh sửa nhanh Scale Hatch, đổi nhanh nhiều góc cho hàng loạt hatch

Dùng lệnh HE -> Chỉnh 1 mẫu Hatch điển hình

Bạn dùng lệnh MA + kết hợp với 'FI

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

Chọn tất cả các Hatch cần chỉnh, bật Properties (Ctrl + 1) lên rồi chỉnh bạn ạ :)

  • 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

Dùng lệnh HE -> Chỉnh 1 mẫu Hatch điển hình

Bạn dùng lệnh MA + kết hợp với 'FI

Dạ, FI không lọc được các hatch theo góc xoay phải không bác?.

E có nhiều hatch cùng màu, cùng kiểu, nhưng mỗi hatch có góc xoay khác nhau. Nếu FI rồi MA thì đưa toàn bộ các hatch về cùng scale thì được nhưng về cùng 1 góc hết thì không được rùi bác ah.

Thanhks các bác, theo cách của bác ketxu thì e chỉnh scale hatch oki roài.(vẫn giữ nguyên được góc xoay riêng của từng hatch)

Nhưng còn góc xoay, muốn mỗi hatch có góc xoay khác nhau cùng cộng thêm hay trừ đi 1 góc thì làm thế nào các bác nhỉ? Mong tiếp tục được chỉ giáo ah! :D

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

Dạ, FI không lọc được các hatch theo góc xoay phải không bác?.

E có nhiều hatch cùng màu, cùng kiểu, nhưng mỗi hatch có góc xoay khác nhau. Nếu FI rồi MA thì đưa toàn bộ các hatch về cùng scale thì được nhưng về cùng 1 góc hết thì không được rùi bác ah.

Thanhks các bác, theo cách của bác ketxu thì e chỉnh scale hatch oki roài.(vẫn giữ nguyên được góc xoay riêng của từng hatch)

Nhưng còn góc xoay, muốn mỗi hatch có góc xoay khác nhau cùng cộng thêm hay trừ đi 1 góc thì làm thế nào các bác nhỉ? Mong tiếp tục được chỉ giáo ah! :D

Cái này e rằng cad không làm được, lisp thì khả dĩ

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

Cái này e rằng cad không làm được, lisp thì khả dĩ

CAD làm được chứ? Nhưng mà lâu thôi!

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

Dạ, FI không lọc được các hatch theo góc xoay phải không bác?.

........

Lệnh Fi không lọc được các hatch theo góc xoay . Sorry bạn!.

Dùng Quick select thì có thể lọc được Hatch theo góc xoay.

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

Cái này e rằng cad không làm được, lisp thì khả dĩ

Bác có cái lisp khả dĩ đấy chưa ah, hí hí......cho e xin đi. E search cả gu gồ mà chỉ lên 1 trang có nhắc đến nó, nhưng ko thấy link down..

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 có cái lisp khả dĩ đấy chưa ah, hí hí......cho e xin đi. E search cả gu gồ mà chỉ lên 1 trang có nhắc đến nó, nhưng ko thấy link down..

Chưa có cái khả dĩ của bạn. Đợi nhé!

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

Chỉnh scale hay chỉnh góc bạn :) ?

 

P/s :

(defun c:ch(/ a c)
(vl-load-com)
(if (and
 (ssget (list (cons 0 "HATCH")))
 (setq a (getangle "\nGoc cong them :"))
 (setq c (getreal "\nScale moi :"))
)
(vlax-for object (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object)))
 (if (wcmatch (vla-get-ObjectName object) "AcDbHatch")
  (or
(vla-put-PatternAngle object (+ (vla-get-PatternAngle object) a))
(vla-put-PatternScale object c)
  )
 )
)
)
)

  • 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

Chỉnh scale hay chỉnh góc bạn :) ?

 

P/s :

(defun c:ch(/ a c)
(vl-load-com)
(if (and
 (ssget (list (cons 0 "HATCH")))
 (setq a (getangle "\nGoc cong them :"))
 (setq c (getreal "\nScale moi :"))
)
(vlax-for object (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object)))
 (if (wcmatch (vla-get-ObjectName object) "AcDbHatch")
  (or
(vla-put-PatternAngle object (+ (vla-get-PatternAngle object) a))
(vla-put-PatternScale object c)
  )
 )
)
)
)

Hí hí, chuẩn chuẩn quá............. :P Cả scale và góc cộng trừ thêm đều oki.

  • 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

À quên. lúc đầu mình để chọn tạp nham nên phải kiểm tra nó là Hatch hay không, cho vào Filter của ssget rồi thì thôi k kiểm tra nữa, bạn sửa lại như này cho gọn :

(defun c:ch(/ a c)
(vl-load-com)
(if (and
 (ssget (list (cons 0 "HATCH")))
 (setq a (getangle "\nGoc cong them :"))
 (setq c (getreal "\nScale moi :"))
)
(vlax-for object (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object)))
  (vla-put-PatternAngle object (+ (vla-get-PatternAngle object) a))
  (vla-put-PatternScale object c)  
)
)
)

Nên kết hợp Fi hoặc Qs để chọn ra Hatch mình cần trước rồi dùng lệnh cũng đc :)

  • 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

Chỉnh scale hay chỉnh góc bạn :) ?

 

P/s :

(defun c:ch(/ a c)
(vl-load-com)
(if (and
 (ssget (list (cons 0 "HATCH")))
 (setq a (getangle "\nGoc cong them :"))
 (setq c (getreal "\nScale moi :"))
)
(vlax-for object (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object)))
 (if (wcmatch (vla-get-ObjectName object) "AcDbHatch")
  (or
(vla-put-PatternAngle object (+ (vla-get-PatternAngle object) a))
(vla-put-PatternScale object c)
  )
 )
)
)
)

Ket ơi! Chú ý thêm cái (cdr (assoc 70)) nếu bằng 1 nữa!

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

Nếu dùng Autolisp thì cần, nhưng Vl thì không sao bác ạ :) Bác cứ check với Solid ^^

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

Nếu dùng Autolisp thì cần, nhưng Vl thì không sao bác ạ :) Bác cứ check với Solid ^^

Trong đám hatch có solid là nó không nhúc nhích đâu. Đã test rồi.

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

Cái j không nhúc nhích bác ơi ^^ Bác gửi file CAD ketxu test cùng với (cad 2008)

Hatch Solid không có mã 41 (scale) và 52 (angle), nhưng Properties thì lại có PatternAngle và PatternScale, thế mới 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

Cái j không nhúc nhích bác ơi ^^ Bác gửi file CAD ketxu test cùng với (cad 2008)

Hatch Solid không có mã 41 (scale) và 52 (angle), nhưng Properties thì lại có PatternAngle và PatternScale, thế mới thích ^^

srr, sai lầm nghiêm trọng! OK

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

À quên. lúc đầu mình để chọn tạp nham nên phải kiểm tra nó là Hatch hay không, cho vào Filter của ssget rồi thì thôi k kiểm tra nữa, bạn sửa lại như này cho gọn :

(defun c:ch(/ a c)
(vl-load-com)
(if (and
 (ssget (list (cons 0 "HATCH")))
 (setq a (getangle "\nGoc cong them :"))
 (setq c (getreal "\nScale moi :"))
)
(vlax-for object (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object)))
  (vla-put-PatternAngle object (+ (vla-get-PatternAngle object) a))
  (vla-put-PatternScale object c)  
)
)
)

Nên kết hợp Fi hoặc Qs để chọn ra Hatch mình cần trước rồi dùng lệnh cũng đc :)

muốn thể hiện trên dòng nhắc lệnh: Goc cong them thành Goc cong them (Goc hien tai:50) với 50 là con số thể hiện góc xoay hiện tại của hatch đó. Tương tự cho scale Scale moi thành Scale moi (10)

. Làm thế nào bác nhỉ?

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

muốn thể hiện trên dòng nhắc lệnh: Goc cong them thành Goc cong them (Goc hien tai:50) với 50 là con số thể hiện góc xoay hiện tại của hatch đó. Tương tự cho scale Scale moi thành Scale moi (10)

. Làm thế nào bác nhỉ?

Từ VD này bạn tự sáng tác cho 2 trường hợp của bạn:

(or *stp* (setq *stp* 2))

(setq stp (getint (strcat "\nSo chu so thap phan <" (itoa *stp*) ">: ")))

(if (not stp) (setq stp *stp*) (setq *stp* stp))

Trong lisp, giá trị góc hiện hành và tỉ lệ hiện hành có thể thay đổi tuỳ theo hatch được chọn. Không lẽ cứ mỗi hatch thì bạn lại phải nhập "Goc cong them" và "Scale moi"? Còn nếu nhập chung 1 giá trị thì lấy cái hiện hành của hatch nào để làm mặc định?

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

Đăng nhập để thực hiện theo  

×