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.
Đăng nhập để thực hiện theo  
engineer0405

[Nhờ giúp đỡ] lisp chia viewport trong layout

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

BẠn dùng cái lsp ở #23 cũng được.

 

Tuy nhiên cái lisp đó là giữ nguyên layer của vp. Tại vì thì thoảng không để ý, mình chưa đổi layer về defpoint đã tạo vp, khi đó khi in ra sẽ bị thấy vp. Do đó mình muốn nó luôn mặc định layer là defpoint, sẽ ít bị lỗi hơn khi làm

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

Vì trg hợp của bạn đặc biệt nên làm thêm cho bạn cái lệnh đổi layer của tất ca viewport sang defpoints, cứ để cái lsp trên như thế.

Bạn dùng lệnh này trước khi dùng lsp chia vp.

 

(defun c:dlay()
  (mapcar '(lambda(x) (vla-put-Layer (vlax-ename->vla-object x) "DEFPOINTS"))
   (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "X" '((0 . "VIEWPORT")))))))
  (princ)
)
  • 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

 

Vì trg hợp của bạn đặc biệt nên làm thêm cho bạn cái lệnh đổi layer của tất ca viewport sang defpoints, cứ để cái lsp trên như thế.

Bạn dùng lệnh này trước khi dùng lsp chia vp.

 

(defun c:dlay()
  (mapcar '(lambda(x) (vla-put-Layer (vlax-ename->vla-object x) "DEFPOINTS"))
   (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "X" '((0 . "VIEWPORT")))))))
  (princ)
)

 

Thế này thì hơi mất công nhỉ, phải gõ 2 lệnh. bạn không gộp vào cho mình được ah. Cái lisp trên của mình, bạn bảo thêm 1 dòng vô đó, lisp đó là được, chỉ thêm khóa vp cho lisp đó thôi mà. Mình tưởng đơn giản 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

Vì có thể có những ng khác không dùng layer defpoints như bạn cho nên mới làm riêng cho bạn cái đổi layer.

Bạn có thể gộp chung và đặt tên lệnh theo ý mình, bạn cứ chép 2 cái trên vào 1 file rồi thêm 1 dòng nữa như thế này:

 

(defun c:tenlenhbanmuon() (c:dlay) (c:cvp))

 

Đây cũng là cách để đổi tên những lệnh của file vlx khi không trực tiếp sửa file đượ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

Vì có thể có những ng khác không dùng layer defpoints như bạn cho nên mới làm riêng cho bạn cái đổi layer.

Bạn có thể gộp chung và đặt tên lệnh theo ý mình, bạn cứ chép 2 cái trên vào 1 file rồi thêm 1 dòng nữa như thế này:

 

(defun c:tenlenhbanmuon() (c:dlay) (c:cvp))

 

Đây cũng là cách để đổi tên những lệnh của file vlx khi không trực tiếp sửa file được.

 

 

Quá hay, lisp thật là kì diệu, giờ mình biết thêm 1 chiêu mới rồi.

Cám ơn bạn Tot77 nhiều nhiều 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

Vì có thể có những ng khác không dùng layer defpoints như bạn cho nên mới làm riêng cho bạn cái đổi layer.

Bạn có thể gộp chung và đặt tên lệnh theo ý mình, bạn cứ chép 2 cái trên vào 1 file rồi thêm 1 dòng nữa như thế này:

 

(defun c:tenlenhbanmuon() (c:dlay) (c:cvp))

 

Đây cũng là cách để đổi tên những lệnh của file vlx khi không trực tiếp sửa file được.

 

Lisp này khi chia vp xong tự động tắt chế độ orthor nhỉ, bạn Tot77 chỉnh lại giúp mình chút nữa là nó giữ nguyên chế độ orthor sau khi chia vp

Mình cám ơn nhiều

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 giản là bạn bấm f8 lại thui mà :)), còn bạn mún lisp làm lun thì dân nữa mùa như nhoc góp ý xíu ^^, bạn thấy dòng lệnh cuối ko sữa như vậy nè :

-cũ: (mapcar 'setvar (list 'orthomode 'tilemode 'cmdecho 'osmode) (list 0 0 1 os))

=> mới : (mapcar 'setvar (list 'orthomode 'tilemode 'cmdecho 'osmode) (list 1 0 1 os))  => sữa số 0 thành số 1 màu đỏ là ok :))

  • 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

đơn giản là bạn bấm f8 lại thui mà :)), còn bạn mún lisp làm lun thì dân nữa mùa như nhoc góp ý xíu ^^, bạn thấy dòng lệnh cuối ko sữa như vậy nè :

-cũ: (mapcar 'setvar (list 'orthomode 'tilemode 'cmdecho 'osmode) (list 0 0 1 os))

=> mới : (mapcar 'setvar (list 'orthomode 'tilemode 'cmdecho 'osmode) (list 1 0 1 os))  => sữa số 0 thành số 1 màu đỏ là ok :))

 

Đơn giản nhỉ,hay thật đó, cám ơn bạn nhoclangbat 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  

×