Đến nội dung


Hình ảnh

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


  • Please log in to reply
53 replies to this topic

#21 Tr.CongSon

Tr.CongSon

    biết lệnh array

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

Đã gửi 12 October 2015 - 08:37 AM

Ok bạn quocmanh04tt rất tuyệt vời, nhưng sao nó chạy được với khung tên thiết kế thôi, khi mình dùng khung tên shop thì nó lại không chạy được, với lại khi chạy xong lsp xóa các bv còn lại chỉ chừa mỗi bv trong khung tên thôi là ok rồi, bạn chỉnh sao cho khi xóa thì chừa lại hình chữ nhật bao quanh bản vẽ để mình kiểm soát sau này. Mong tin vui từ bạn.

Chúc bạn buổi sáng vui vẻ.http://www.cadviet.c...ban_ve_shop.dwg

Không đọc được Code của a quocmanh04tt nhưng cũng đoán mò tí ^^

Code bác ấy viết để tách bve dựa vào  Block khung tên, tên của block là: "KHUNG TEN"

*** Có bao nhiêu Block "KHUNG TEN" trong layout thì có bấy nhiêu bản vẽ được tách ra.

Nếu bạn muốn chạy được với bản vẽ Shop thì đặt tên Block khung tên trong bản vẽ shop là "KHUNG TEN" là được ^^
 

P/s:Anh quocmanh04tt có thể share code cho em tham khảo với được không ạ??.Em cũng mò mẫm mấy bữa nay viết mà ko được ^^ Em cảm ơn trước!


  • 0

#22 Đình Thụ

Đình Thụ

    biết lệnh offset

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

Đã gửi 12 October 2015 - 09:09 AM

mình thấy hơi lạ về cách trình bày bản vẽ của bạn. 20 bản vẽ trong 1 file thì mình đã hiểu còn 20 bản trong 1 layout thì hơi lạ. tại sao bạn hơm tách thành 20 layout từ lúc đầu và sử dụng shet set nữa thì rất tuyệt vời khi in ấn.


  • 0

#23 Luu Nguyen

Luu Nguyen

    biết vẽ circle

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

Đã gửi 12 October 2015 - 06:31 PM

Mình đã tham khảo cách của bạn Tr.CongSon nhưng không được, đành phải chờ bạn quocmanh04tt sửa giúp. Khi nào rảnh bạn quocmanh04tt giúp mình với nha!


  • 0

#24 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 671 Bài viết
Điểm đánh giá: 313 (khá)

Đã gửi 13 October 2015 - 07:30 AM

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​


  • 1

#25 Tr.CongSon

Tr.CongSon

    biết lệnh array

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

Đã gửi 13 October 2015 - 09:23 AM

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

 

Em cảm ơn nhiều ^^

"Nhạc sỹ" mới vào"sô bít" nên trình còn non kém lắm

Mong anh chị chỉ bảo thêm !


  • 0

#26 Luu Nguyen

Luu Nguyen

    biết vẽ circle

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

Đã gửi 13 October 2015 - 07:19 PM

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.c...n_ve_shop_1.dwg


  • 0

#27 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 671 Bài viết
Điểm đánh giá: 313 (khá)

Đã gửi 13 October 2015 - 09:17 PM

 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


  • 1

#28 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 671 Bài viết
Điểm đánh giá: 313 (khá)

Đã gửi 13 October 2015 - 09:21 PM

File đây:

http://www.cadviet.c...41736_tbv_3.rar


  • 0

#29 Luu Nguyen

Luu Nguyen

    biết vẽ circle

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

Đã gửi 13 October 2015 - 10:14 PM

 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


  • 0

#30 Luu Nguyen

Luu Nguyen

    biết vẽ circle

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

Đã gửi 13 October 2015 - 11:05 PM

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


  • 0

#31 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 671 Bài viết
Điểm đánh giá: 313 (khá)

Đã gửi 13 October 2015 - 11:15 PM

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

http://www.cadviet.c...41736_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.


  • 0

#32 Luu Nguyen

Luu Nguyen

    biết vẽ circle

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

Đã gửi 14 October 2015 - 06:46 AM

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

http://www.cadviet.c...41736_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


  • 0

#33 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 671 Bài viết
Điểm đánh giá: 313 (khá)

Đã gửi 14 October 2015 - 07:11 AM

 Do xoá chưa hết mới bị lỗi. File đã xóa hết:

http://www.cadviet.c...ban_ve_shop.dwg

http://www.cadviet.c...6_tbvshop20.gif


  • 1

#34 quang_lac

quang_lac

    biết lệnh mirror

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

Đã gửi 14 October 2015 - 01:58 PM

phát triển thêm cho khung tên xref đi bác


  • 0

#35 Luu Nguyen

Luu Nguyen

    biết vẽ circle

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

Đã gửi 14 October 2015 - 09:05 PM

 Do xoá chưa hết mới bị lỗi. File đã xóa hết:

http://www.cadviet.c...ban_ve_shop.dwg

http://www.cadviet.c...6_tbvshop20.gif

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


  • 0

#36 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 671 Bài viết
Điểm đánh giá: 313 (khá)

Đã gửi 14 October 2015 - 10:05 PM

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.


  • 0

#37 Luu Nguyen

Luu Nguyen

    biết vẽ circle

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

Đã gửi 14 October 2015 - 10:34 PM

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


  • 0

#38 Luu Nguyen

Luu Nguyen

    biết vẽ circle

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

Đã gửi 19 October 2015 - 06:19 PM

Mấy ngày qua không thấy bạn quocmanh04tt xuất hiện.


  • 0

#39 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 671 Bài viết
Điểm đánh giá: 313 (khá)

Đã gửi 20 October 2015 - 08:08 AM

- 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.c...ng_can_tach.dwg
- File LISP:

http://www.cadviet.c...1736_tbvatt.rar


  • 0

#40 Luu Nguyen

Luu Nguyen

    biết vẽ circle

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

Đã gửi 20 October 2015 - 06:46 PM

- 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.c...ng_can_tach.dwg
- File LISP:

http://www.cadviet.c...1736_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!


  • 0