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.
Luu Nguyen

Tách Các Bản Vẽ Bên Layout Thành Từng Bản Vẽ Riêng Biệt

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

Share code cho "Nhạc sỹ" và bạn nào nếu cần.

+ Hạn chế của lisp:

* Như đã nói ở bài #13

- Khung ten Block

- Layout

(vấn đề này có thể gải quyết bằng cách dùng hộp thoại để chọn Layout, và Block)

- Nếu trong layout có nhiều viewport lồng vào nhau thì lisp chưa xử lý được.

+ Code chưa tối ưu, đang còn lộn xộn ... :D

(defun xuat-file (/ e i ss ssg ssv)

(command "_ucs" "_w")

(vlax-for x (vla-get-layouts acaddoc)

(if (wcmatch (vla-get-name x) "QUOCMANH-*")

(progn (vla-put-ActiveLayout acaddoc x)

(vla-ZoomExtents acadapp)

(vla-put-ActiveLayout acaddoc acadlyt))))

(foreach l (cdr (layoutlist))

(setvar 'ctab l)

(if (> (sslength (ssget "_x" (list (cons 410 (getvar 'ctab))))) 1)

(progn (vla-endundomark acaddoc)

(vla-startundomark acaddoc)

(vlax-for x (vla-get-layouts acaddoc)

(and (/= (vla-get-name x) (getvar 'ctab))

(vl-catch-all-apply 'vla-delete (list x))))

(if (setq ss (ssget "_X" (list (cons 410 "Model"))))

(progn (if (setq ssv (ssget "_X" (list (cons 0 "VIEWPORT"))))

(mapcar '(lambda (e) (Vla-Display (vlax-ename->vla-object e) :vlax-true))

(mapcar 'cadr (ssnamex ssv))))

(vla-put-mspace (vla-get-ActiveDocument (vlax-get-acad-object)) :vlax-true)

(setq ssg (ssget "_W" (getvar 'EXTMIN) (getvar 'EXTMAX)))

(setq i 0)

(while (setq e (ssname ssg i)) (setq ss (ssdel e ss)) (setq i (1+ i)))

(mapcar '(lambda (e) (vla-delete (vlax-ename->vla-object e)))

(mapcar 'cadr (ssnamex ss)))))

(vla-put-mspace (vla-get-ActiveDocument (vlax-get-acad-object))

:vlax-false)

(command "_-wblock"

(strcat (getvar 'dwgprefix) (vl-filename-base (getvar 'dwgname)) "-" l)

"*")

(vla-endundomark acaddoc)

(command "_u"))))

(princ))

;;------------------------------------------------------------------

(defun c:tbv (/ maxp minp acadapp acaddoc acadlyt lst-nn vars vals sbv ssb)

(vl-load-com)

(if (and (member "Layout" (layoutlist))

(ssget "_X"

(list (cons 0 "INSERT") (cons 2 "KHUNG TEN") (cons 410 "Layout"))))

(progn (setq vars '("FILEDIA" "EXPERT" "TILEMODE" "CTAB" "REGENMODE" "CMDECHO" "LAYOUTREGENCTL" "OSMODE")

vals (mapcar 'getvar vars))

(mapcar 'setvar vars '(0 5 1 "Layout" 0 0 0 0))

(setq acadapp (vlax-get-acad-object)

acaddoc (vla-get-ActiveDocument acadapp)

acadlyt (vla-get-ActiveLayout acaddoc))

(createlayobj)

(vlax-for x (vla-get-layouts acaddoc)

(if (wcmatch (vla-get-name x) "QUOCMANH-*")

(progn (vla-put-ActiveLayout acaddoc x)

(vla-ZoomExtents acadapp)

(vla-put-ActiveLayout acaddoc acadlyt))))

(xuat-file)

(vlax-for x (vla-get-layouts acaddoc)

(if (wcmatch (vla-get-name x) "QUOCMANH-*")

(vla-delete x)))

(mapcar 'setvar vars vals)

(if sbv

(alert

(strcat "Co "

(itoa sbv)

" file ban ve duoc tach ra! \nLisp write by QuocManh04tt-Cadviet.com."))))

(alert "Khong ton tai layout co ten: Layout! \nHoac Block KHUNG TEN..."))

(princ "\nLisp write by QuocManh04tt-Cadviet.com.")

(princ))

;;--------------------------------------------------

(defun createlayobj (/ create-layout nl i ss k lst ssold copy2layout lay-out lso lst-new-layout)

(defun create-layout (name)

(vl-catch-all-apply '(lambda () (vla-add (vla-get-layouts acaddoc) name)))

(vla-item (vla-get-layouts acaddoc) name))

(defun copy2layout (k / lobj i llst layout tab lay)

(if (setq ss (ssget "_C" minp maxp (list (cons 410 "Layout"))))

(progn (repeat (setq i (sslength ss))

(setq lobj (cons (vlax-ename->vla-object (ssname ss (setq i (1- i)))) lobj)))

(if (= 1 (getvar 'cvport))

(setq tab (strcase (getvar 'ctab)))

(setq tab "MODEL"))

(vlax-invoke (vla-get-activedocument (vlax-get-acad-object))

'CopyObjects

lobj

(vla-get-block (nth k lst)))

(vla-ZoomExtents (vlax-get-acad-object)))))

;; --- MAIN ----

(if (setq ssb (ssget "_X"

(list (cons 0 "INSERT") (cons 2 "KHUNG TEN") (cons 410 "Layout"))))

(progn (if (not (member "QUOCMANH-1" (layoutlist)))

(progn

(repeat (setq i (sslength ssb))

(create-layout (strcat "QUOCMANH-" (itoa i)))

(setq lst-new-layout (cons (strcat "QUOCMANH-" (itoa i)) lst-new-layout))

(setq i (1- i)))))

;; listlayout

(vlax-for lay (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object)))

(if (/= tab (strcase (vla-get-name lay)))

(setq lst (cons lay lst))))

;;del old obj

(vlax-for x (vla-get-layouts acaddoc)

(if (wcmatch (vla-get-name x) "QUOCMANH-*")

(progn (setq lst-nn (cons (vla-get-name x) lst-nn)

lay-xl (cons x lay-xl))

(vla-put-ActiveLayout acaddoc x)

(vla-ZoomExtents acadapp)

(vla-put-ActiveLayout acaddoc acadlyt)

(if (setq ssold (ssget "_X" (list (cons 410 (vla-get-name x)))))

(mapcar '(lambda (e) (vla-delete (vlax-ename->vla-object e)))

(mapcar 'cadr (ssnamex ssold)))))))

;; copy obj

(if (setq ssb (ssget "_X"

(list (cons 0 "INSERT") (cons 2 "KHUNG TEN") (cons 410 "Layout"))))

(progn (setq k 0

sbv (sslength ssb))

(repeat (length (setq lso (mapcar 'vlax-ename->vla-object

(vl-remove-if 'listp (mapcar 'cadr (ssnamex ssb))))))

(vla-getBoundingBox (nth k lso) 'Minp 'Maxp)

(setq minp (vlax-safearray->list Minp)

maxp (vlax-safearray->list Maxp))

(copy2layout k)

(setq k (1+ k))))))))

* File bản vẽ thứ 2 của chủ thớt có nhiều viewport lồng vào nhau​

Thanks bạn quocmanh04tt! Nhưng không biết tại sao mình chạy thì nó báo lỗi.

tên block vẫn là KHUNG TEN, Layout chứa bản vẽ vẫn có tên là Layout.

Công dụng của việc đặt khung tên bên layout còn bản vẽ bên model là để vẽ với nhiều tỉ lệ khác nhau, bên Layout chỉ chọn 1 loại khung tên(bv thứ 2 chứa 2 view, nhưng mình đã xóa khung đó rồi nhưng nó vẫn bị lỗi)

Không lẽ mình dùng khung bản vẽ khác nên nó bị lỗi?

146653_untitled_4.jpghttp://www.cadviet.com/upfiles/5/146653_ban_ve_shop_1.dwg

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ạn dùng bản này nhé ! (Thêm tý hoa lá cành ...)

+ Chọn layout để xuất thỏa thích ...

+ Lựa chọn Block khung tên cho đúng (nếu trong layout có nhiều block ...)

+ Giải quyết vấn đề trong Khung tên có nhiều Viewports lồng vào nhau .

141736_tbv2007.gif

  • 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

 Bạn dùng bản này nhé ! (Thêm tý hoa lá cành ...)

+ Chọn layout để xuất thỏa thích ...

+ Lựa chọn Block khung tên cho đúng (nếu trong layout có nhiều block ...)

+ Giải quyết vấn đề trong Khung tên có nhiều Viewports lồng vào nhau .

141736_tbv2007.gif

Thanks bạn quocmanh04tt nhiều lắm! Lsp bạn viết chạy rất ok đối với bản vẽ mình đã gởi lên lúc trước(1 layout có 2 bản vẽ, trong đó có 1 bv có 2 view, các trường hợp khác thì mình chưa thử qua, nếu có trục trặc gì thì mình sẽ báo cho bạn sau). Tuy nhiên mình nhờ bạn sửa cho tí(có đề cập ở # 20):

Khi tách ra thành từng bv riêng biệt thì lsp xóa các đối tượng còn lại, bạn chỉnh sao cho lsp chừa lại giúp mình hình chữ nhật bao quanh bv đó(1 khung tên có nhiều view thì các hình chữ nhật bên trong dùng để quản lý chúng).

146653_untitled_6.jpg

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

1/ Xuất hiện 1 lỗi mà mình không biết lỗi gì nữa, có những bv lsp không chạy được(vẫn lấy khung tên cũ).

http://www.cadviet.com/upfiles/5/146653_ban_ve_shop_1_1.dwg

2/ Phần này yêu cầu thêm, nếu bạn giúp được thì ok, còn không cũng không sao(cái này không nằm trong yêu cầu của toppic): bv nằm bên model, khung tên nằm bên layout->lsp chay sắp ok(có những bv chưa chạy đưđươc). Nếu bv vừa nằm bên model vừa nằm bên layout(đương nhiên khung tên nằm bên layout)->lsp chạy tốt thì rất là tuyệt. 

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

Đây bạn: (giữ lại hình chữ nhật bao quanh).

http://www.cadviet.com/upfiles/5/141736_tbv_4.rar

1. File của bạn chạy bị lỗi là do: trong khung có nhiều Viewport rỗng (có nghĩa là có view nhưng trong view không có đối tượng bản vẽ nào cả) - Xử lý tạm thời: xóa các view rỗng ấy đi. (thậm chí có nhiều hình CN thừa, chẳng để làm gì, thêm nặng file).

2. Câu yêu cầu thêm là thừa vì lisp đã giải quyết vấn đề đó ngay từ lisp đầu tiên rồi, do bạn không để ý (Bạn kiểm tra lại file đầu tiện bạn gửi "BAN VE TONG CAN TACH" trong khung tên của bạn có 1 số text nằm trên layout - Lisp xử lý bình thường mà).

3. Khi có hộp thoại thì Block khung tên tên là gì không quan trọng nữa (Chú ý: đừng để chọn nhầm, nếu có đối tượng bản vẽ theo ý 2 ở trên - do lisp tự liệt kê các block nằm trong layout đưa vào Listbox).

*** Bản vẽ nằm bên layout bắt buộc phải nằm trong phần bao của khung tên.

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

Đây bạn: (giữ lại hình chữ nhật bao quanh).

http://www.cadviet.com/upfiles/5/141736_tbv_4.rar

1. File của bạn chạy bị lỗi là do: trong khung có nhiều Viewport rỗng (có nghĩa là có view nhưng trong view không có đối tượng bản vẽ nào cả) - Xử lý tạm thời: xóa các view rỗng ấy đi. (thậm chí có nhiều hình CN thừa, chẳng để làm gì, thêm nặng file).

2. Câu yêu cầu thêm là thừa vì lisp đã giải quyết vấn đề đó ngay từ lisp đầu tiên rồi, do bạn không để ý (Bạn kiểm tra lại file đầu tiện bạn gửi "BAN VE TONG CAN TACH" trong khung tên của bạn có 1 số text nằm trên layout - Lisp xử lý bình thường mà).

3. Khi có hộp thoại thì Block khung tên tên là gì không quan trọng nữa (Chú ý: đừng để chọn nhầm, nếu có đối tượng bản vẽ theo ý 2 ở trên - do lisp tự liệt kê các block nằm trong layout đưa vào Listbox).

*** Bản vẽ nằm bên layout bắt buộc phải nằm trong phần bao của khung tên.

Ok bạn. Sao mình chạy lsp vẫn báo lỗi(BAN VE SHOP_1 ở # 30) mình đã kiểm tra và xóa các view thừa(nếu có) mà vẫn bị lỗi.

146653_untitled_7.jpg

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

Do có bv bị view chồng nên lsp không chạy đươc(mình không để ý), đã xóa các view bị chồng đó và bây giờ thì:

Lsp chạy ok rồi, Bạn quocmanh04tto thật là tuyệt vời! Thanks bạn nhiều lắm! Nhờ lsp của bạn mà mình rút ngắn đươc 1 thời gian đáng quý. 

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

View chồng lên nhau thì vẫn có thể xử lý được mà không lỗi, tuy nhiên càng nhiều view thì lisp càng mất thời gian để xử lý.

@quang_lac xref lisp vẫn xứ lý bình thường, vì nó cũng là block.

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

View chồng lên nhau thì vẫn có thể xử lý được mà không lỗi, tuy nhiên càng nhiều view thì lisp càng mất thời gian để xử lý.

@quang_lac xref lisp vẫn xứ lý bình thường, vì nó cũng là block.

1/ Nếu được vậy(view chồng lên nhau) thì bạn chỉnh cho hoàn thiện luôn đi bạn(nếu bv tự mình làm thì không sao, nhưng những bv người khác làm không để ý, khi chuyển cho mình, mình phải kiểm tra từng bv và xóa các view chồng đó còn lâu hơn là chờ lsp xử lý)->mình đã kiểm tra: view chồng vẫn chạy được nhưng view rỗng thì không(nếu 1 khung tên có 1 view rỗng và 1 view có bv vẽ(do nhầm lẫn) thì bạn cho lsp lấy trường hợp view có bv thôi ).

2/ Nếu được trong model bạn cho bv zoom all sau khi xóa các phần thừa(bên layout thì bv zoom all thì ok). 

Thanks bạn! 

3/ Mình bổ sung thêm ý này: khi tách ra thành từng bv riêng biệt bạn chỉnh sao cho nó theo thứ tự: từ trái qua phải, từ trên xuống dưới được không bạn(vì nó hơi lộn xộn). 

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

- Mình đã làm xong từ hôm trước, song không thấy bạn online trong 1 thời gian dài -> nên nghĩ bạn không cần nữa.
- Lisp mới đáp ứng các yêu cầu từ trước đến bây giờ.
- Bổ sung thêm với khung tên Block thuộc tính với yêu cầu trong nó có Tagname phải là "KHBV".
+ Cụ thể như sau:
1. Nếu Layout trong bản vẽ là khung tên Block thường thì Lisp xuất ra các flie như trước (tất nhiên đáp ứng các yêu cầu ở trên).
2. Nếu Là Block thuộc tính:
a. Có Tagname "KHBV", với  các giá trị (Tagstring - tức là ký hiệu bản vẽ):
* Ví dụ: KC-01; KC-02; KC-03 ...    Thì các file xuất ra sẽ là: Tenfilegoc-KC-01.dwg; Tenfilegoc-KC-02.dwg; Tenfilegoc-KC-03.dwg ...
* Nếu có Tagstring (KHBV) nào để trống thì LISP tự thay tên file khi xuất ra (tên file giống trường hợp Block thường).
* Nếu trong các khung tên có KHBV trùng nhau (do quên chưa sửa - Hoặc lý do nào khác ...)
   Ví dụ: KC-01; KC-02; KC-03; KC-01; KC-01... thì các file xuất ra (phần đuôi) sẽ là: -KC-01x0.dwg;  -KC-02.dwg; -KC-03.dwg; -KC-01x1.dwg; -KC-01x2.dwg ...
b. Không có Tagname  "KHBV" - LISP làm việc như đối với Block thường.
*** Lời khuyên: Nên dùng Block thuộc tính. Lý do:
 + Khi copy các khung tên để tạo các view mới - Các text trong khung tên dễ bị "RƠI VÃI" nếu không dùng AttBlock giống như của bạn.
 + Các file xuất ra - Không cần phải sửa tên file.
*** Hy vọng không có yêu cầu nào thêm trong lisp này nữa ...

*** Tên lệnh vẫn như cũ: TBV​
- File để test:

http://www.cadviet.com/upfiles/5/141736_ban_ve_tong_can_tach.dwg
- File LISP:

http://www.cadviet.com/upfiles/5/141736_tbvatt.rar

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

- Mình đã làm xong từ hôm trước, song không thấy bạn online trong 1 thời gian dài -> nên nghĩ bạn không cần nữa.

- Lisp mới đáp ứng các yêu cầu từ trước đến bây giờ.

- Bổ sung thêm với khung tên Block thuộc tính với yêu cầu trong nó có Tagname phải là "KHBV".

+ Cụ thể như sau:

1. Nếu Layout trong bản vẽ là khung tên Block thường thì Lisp xuất ra các flie như trước (tất nhiên đáp ứng các yêu cầu ở trên).

2. Nếu Là Block thuộc tính:

a. Có Tagname "KHBV", với  các giá trị (Tagstring - tức là ký hiệu bản vẽ):

* Ví dụ: KC-01; KC-02; KC-03 ...    Thì các file xuất ra sẽ là: Tenfilegoc-KC-01.dwg; Tenfilegoc-KC-02.dwg; Tenfilegoc-KC-03.dwg ...

* Nếu có Tagstring (KHBV) nào để trống thì LISP tự thay tên file khi xuất ra (tên file giống trường hợp Block thường).

* Nếu trong các khung tên có KHBV trùng nhau (do quên chưa sửa - Hoặc lý do nào khác ...)

   Ví dụ: KC-01; KC-02; KC-03; KC-01; KC-01... thì các file xuất ra (phần đuôi) sẽ là: -KC-01x0.dwg;  -KC-02.dwg; -KC-03.dwg; -KC-01x1.dwg; -KC-01x2.dwg ...

b. Không có Tagname  "KHBV" - LISP làm việc như đối với Block thường.

*** Lời khuyên: Nên dùng Block thuộc tính. Lý do:

 + Khi copy các khung tên để tạo các view mới - Các text trong khung tên dễ bị "RƠI VÃI" nếu không dùng AttBlock giống như của bạn.

 + Các file xuất ra - Không cần phải sửa tên file.

*** Hy vọng không có yêu cầu nào thêm trong lisp này nữa ...

*** Tên lệnh vẫn như cũ: TBV​

- File để test:

http://www.cadviet.com/upfiles/5/141736_ban_ve_tong_can_tach.dwg

- File LISP:

http://www.cadviet.com/upfiles/5/141736_tbvatt.rar

Thanks bạn quocmanh04tt! Tại vì nhờ bạn viết hộ nên mình cũng ngại command, chắc có lẽ bạn hiểu sai ý mình hay sao mà khi dùng lsp thì nó ra thành từng sheet riêng biệt mà không ra thành từng bv riêng biệt vậy bạn(ý số 3 trong #37)? Ban xem lại chỗ này giúp mình với nha!

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

- Uh, lại lỗi trên cad2007, cad 2012 thì không sao.

- Ý số 3 (trong #37): Với khung tên Block thường thì thì nó đúng như thế, từ trái qua phải, từ trên xuống dưới, với khung tên Attblock thì xuất ra theo tên ký hiệụ bản vẽ nên không cần sự sắp xếp đó nữa.

Thử lại cái này nhé :http://www.cadviet.com/upfiles/5/141736_tbvatt_1.rar

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

- Uh, lại lỗi trên cad2007, cad 2012 thì không sao.

- Ý số 3 (trong #37): Với khung tên Block thường thì thì nó đúng như thế, từ trái qua phải, từ trên xuống dưới, với khung tên Attblock thì xuất ra theo tên ký hiệụ bản vẽ nên không cần sự sắp xếp đó nữa.

Thử lại cái này nhé :http://www.cadviet.com/upfiles/5/141736_tbvatt_1.rar

Ok bạn. Khi nào rãnh bạn chỉnh cho lsp dùng được với cad 2007 giúp mình với(nếu được với các đời cad thì tuyệt hơn, đôi khi cũng cần với cad đời cao hơn). Thanks bạn! 

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

Do diễn đàn bị lỗi hay sao mà lúc nãy mình không nhìn thấy được link download, đã test lsp mới(tbvatt_1) trong một số bv thì:

1/ Lsp chạy tốt khi bv có view rỗng.

2/ Chạy theo thứ tự: từ trái sang phải, từ trên xuống dưới. 

Tuy nhiên khi chạy xong: 

a/ Có 1 số trường hợp: khi chạy xong trên màn hình báo là: có 22 file bv được tách ra, tuy nhiên chỉ có 7 bv mà thôi. 

b/ Có 1 bv bị mất, nhưng 1 bv lại xuất hiện 2 lần(bv đầu tiên k xuất hiện, nhưng bv số 7 lại xuất hiện 2 lần, nhưng có tên ...no-1 và ...no-7(vẫn là bv số 7))

Trường hợp a, b xuất hiện khoảng: nếu ta chạy 3 lần thì có 1 lần bị như thế(bv để test có khoảng từ 20-22 bv).

Lúc trước mình có gởi lên bv có khung tên shop(#20), nếu bạn coppy ra khoảng 20 bv và chạy thử khoảng 2-3 lần sẽ thấy trường hợp a và b. 

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

+ Mình chạy không bị như thế.

+ Không biết bạn có ở trường hợp này không ??? Khi chạy lại lần sau thì các file xuất ra ở lần trước không được mở ( tất nhiên cùng 1 file gốc) vì đang mở thì không thể ghi đè đượ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

Cảm ơn bạn đã tận tình giúp đỡ, vì lý do tế nhị nên mình không tiện up bv lên để bạn test thử. Nếu gặp trường như mình nói ở trên thì mình sẽ dùng lsp đầu, 2 lsp cùng 1 lệnh tắt TBV sẽ bị trùng nhau, nên mình nhờ bạn chỉnh lại giúp lsp(tbvatt_1) có lệnh tắt là TBV1 giúp mình với. Thanks bạn! Chúc bạn nhiều sức khỏe và cho ra nhiều lsp hay để anh, em học hỏi và vận dụng. 

Các bv trước mình đã gộp lại thành 1 bv, bạn test thử:

http://www.cadviet.com/upfiles/5/146653_ban_ve_shop_4.dwg

 

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

Mình có bản vẽ có 1 layout trong layout đó có rất nhiều bản vẽ với khung đầy đủ. Bây giờ từ layout đấy mình muốn tách mỗi bản vẽ thành một layout riêng (tách thành layout riêng chứ không phải tách thành một bản vẽ riêng). Bình thường thì mình phải copy layout gốc thành nhiều layout rồi vào xóa bản vẽ đi nhưng cách này rất mất thời gian. Bạn nào có lisp cho mình xin với. 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

Cách của bạn là đúng rồi.

 

Lisp dưới đây hỗ trợ thêm cho bạn các tạo layout nhanh

(defun c:taolayout ( / tiento index newname)
  (setq
    tiento (getstring "\nVao tien to: ")    
    index  1
  )
 
  (repeat (getint "\nSo layout: ")
    (setq
      newname (strcat tiento
              (if (< 10 index)
            (strcat "0" (itoa index))
            (itoa index)
              )
          )
      index   (1+ index)
    )
    (setvar "TILEMODE" 0)
    (command ".LAYOUT" "c" "" newname)    
  )
  (princ)
)

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


×