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

Insert nhiều file DWG một lúc!

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

Mình có vấn đề này mà không thể làm được, mong các bạn giúp đỡ.

Mình có 50 bản vẽ (dwg), bây giờ mình muốn insert vào thành một file (không dùng xr), mình cứ phải Insert từng file một. Có lúc còn bị nhầm chứ (tên file không giống nhau mà). Vậy làm thế nào để một lần có thể Insert hết 50 bản vẽ đó vào không?

Mong nhận được sự giúp đỡ!

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ó vấn đề này mà không thể làm được, mong các bạn giúp đỡ.

Mình có 50 bản vẽ (dwg), bây giờ mình muốn insert vào thành một file (không dùng xr), mình cứ phải Insert từng file một. Có lúc còn bị nhầm chứ (tên file không giống nhau mà). Vậy làm thế nào để một lần có thể Insert hết 50 bản vẽ đó vào không?

Mong nhận được sự giúp đỡ!

Chào bạn minhphuong_humg,

Bạn co thể sử dụng lisp imf.lsp của bác nguyenhoanh ở đây nhé:

http://www.cadviet.com/forum/index.php?sho...amp;#entry90892

Trước khi chạy lisp, bạn hãy tạo một thư mục mới và nhét tất cả các file bản vẽ cần insert vào thư mục này. Khi chạy lisp, lúc lisp hỏi bạn, hãy chọn một file bất kỳ trong thư mục này bạn nhé.

Chúc thành công.

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ào bạn minhphuong_humg,

Bạn co thể sử dụng lisp imf.lsp của bác nguyenhoanh ở đây nhé:

http://www.cadviet.com/forum/index.php?sho...amp;#entry90892

Trước khi chạy lisp, bạn hãy tạo một thư mục mới và nhét tất cả các file bản vẽ cần insert vào thư mục này. Khi chạy lisp, lúc lisp hỏi bạn, hãy chọn một file bất kỳ trong thư mục này bạn nhé.

Chúc thành công.

Mình đã download lisp đó về dùng thì nó báo lỗi "Unknown command "IMF". Press F1 for help." Mong nhận được sự giúp đỡ!

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 đã download lisp đó về dùng thì nó báo lỗi "Unknown command "IMF". Press F1 for help." Mong nhận được sự giúp đỡ!

Chào bạn minhphuong_humg,

Theo cái lỗi nó báo chứng tỏ có rằng:

1/- Bạn hãy kiểm tra lại file download về nhé. Có thể bạn đã nhầm tên file.

2/- Bạn chưa load cái file này vào CAD

 

File này đã được nhiều người download về để sử dụng. Do vậy khả năng file lisp sai hay có lỗi là không thể bạn ạ. Hãy làm lại từng bước cẩn thận xem sao.

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ào bạn minhphuong_humg,

Bạn co thể sử dụng lisp imf.lsp của bác nguyenhoanh ở đây nhé:

http://www.cadviet.com/forum/index.php?sho...amp;#entry90892

Trước khi chạy lisp, bạn hãy tạo một thư mục mới và nhét tất cả các file bản vẽ cần insert vào thư mục này. Khi chạy lisp, lúc lisp hỏi bạn, hãy chọn một file bất kỳ trong thư mục này bạn nhé.

Chúc thành công.

Mình đã làm và chèn vào cùng một bản vẽ mới. Nhưng có điều là mảnh 1 không "dính" với mảnh 2, mà 50 bản vẽ ấy dàn thành một hàng ngang. Trong khi mình Insert từng file thì nó lại dính liền với nhau? Xin hướng dẫn mình cách để có thể dính với nhau! Xin cảm ơ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 và chèn vào cùng một bản vẽ mới. Nhưng có điều là mảnh 1 không "dính" với mảnh 2, mà 50 bản vẽ ấy dàn thành một hàng ngang. Trong khi mình Insert từng file thì nó lại dính liền với nhau? Xin hướng dẫn mình cách để có thể dính với nhau! Xin cảm ơn!

Chào bạn minhphuong_humg,

Sở dĩ vậy là do các bản vẽ gốc của bạn có chừa các khoảng trắng và có các khung bao bản vẽ kèm với khung tên. Nếu bạn muốn cho các bản vẽ dình liền nhau thì bạn cần bỏ đi các khung bao này chỉ để lại hình vẽ và scale nó lên với tỉ lệ tương ứng với khổ bản vẽ. Nhớ là phải kiểm tra tỷ lệ của các bản vẽ sao cho khi insert xong thì nó dính liền được với nhau.

Nếu là bạn định ghép các mảnh bản đồ với nhau thì việc này đòi hỏi bạn phải đánh số thứ tự của các bản vẽ cho hợp lý mới được.

Lisp trên là insert các bản vẽ thành một hàng ngang, còn nếu bạn muốn insert thành một bảng với số cột cho trước thì bạn có thể sử dụng lisp sau với điều kiện các bản vẽ phải có cùng kích thước như nhau.

(defun c:imf()
(vl-load-com)
(command "undo" "be")
(setq pathname (vl-filename-directory (getfiled "Hay chon file dwg bat ky thuoc thu muc" "" "dwg" 0))
filelist (vl-sort (vl-directory-files pathname "*.dwg") '<)
p (getpoint "\nDiem chen: ")
xht (car p)
yht (cadr p)
i 1
k (getint "\n Nhap so cot: ")
)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(foreach filename filelist
(command "-insert" (strcat pathname "/" filename) (list xht yht) 1.0 1.0 0.0)
(vla-getboundingbox (vlax-ename->vla-object (entlast)) 'p1 'p2)
(setq
p1 (vlax-safearray->list p1)
p2 (vlax-safearray->list p2)
m (rem i k)
xht (if (/= m 0) (+ xht (abs (car (mapcar '- p2 p1))))(- xht (* (1- k) (abs (car (mapcar '- p2 p1))))))
yht (if (= m 0) (- yht (abs (cadr (mapcar '- p2 p1)))) yht)
blname (cdr (assoc 2 (entget (entlast))))
)
(command ".explode" (entlast) "")
(command "-purge" "Block" blname "N")
(setq i (1+ i))
)
(setvar "osmode" oldos)
(command "undo" "e")
(princ)
)

 

Chúc bạn thành công.

  • 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ào bạn minhphuong_humg,

Sở dĩ vậy là do các bản vẽ gốc của bạn có chừa các khoảng trắng và có các khung bao bản vẽ kèm với khung tên. Nếu bạn muốn cho các bản vẽ dình liền nhau thì bạn cần bỏ đi các khung bao này chỉ để lại hình vẽ và scale nó lên với tỉ lệ tương ứng với khổ bản vẽ. Nhớ là phải kiểm tra tỷ lệ của các bản vẽ sao cho khi insert xong thì nó dính liền được với nhau.

Nếu là bạn định ghép các mảnh bản đồ với nhau thì việc này đòi hỏi bạn phải đánh số thứ tự của các bản vẽ cho hợp lý mới được.

Lisp trên là insert các bản vẽ thành một hàng ngang, còn nếu bạn muốn insert thành một bảng với số cột cho trước thì bạn có thể sử dụng lisp sau với điều kiện các bản vẽ phải có cùng kích thước như nhau.

...

Chúc bạn thành công.

Chào bác phamthanhbinh.

Để sử dụng MPLOT của bác Nguyen Hoanh với Print select methol là chọn RECTANGLE khi in hàng loạt các bv đã được insert vào 1 bv. PP nhờ bác giúp bổ xung vào lisp trên với đoạn code là tự động insert các Rectange đúng với size 420X297 (A3) hoặc 841x594 (A1), layer của các Rectangle này sẽ là Defpoints. Toạ độ insert chính là toạ độ của các khung tên - thường là 0,0.

Cám ơn bác với lisp trên đã cho phép insert nhiều bv theo dạng ma trận mà PP có đề cập trong topic http://www.cadviet.com/forum/index.php?sho...203&st=1000

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ào bác phamthanhbinh.

Để sử dụng MPLOT.lsp của bác Nguyen Hoanh với Print select methol là chọn RECTANGLE khi in hàng loạt các bv đã được insert vào 1 bv. PP nhờ bác giúp bổ xung vào lisp trên với đoạn code là tự động insert các Rectange đúng với size 420X297 (A3) hoặc 841x594 (A1), layer của các Rectangle này sẽ là Defpoints. Toạ độ insert chính là toạ độ của các khung tên - thường là 0,0.

Cám ơn bác với lisp trên đã cho phép insert nhiều bv theo dạng ma trận mà PP có đề cập trong topic http://www.cadviet.com/forum/index.php?sho...203&st=1000

Ý Phiphi có phải là tạo 1 rectangle bo xung quanh block khung tên? với 2 điểm đối diện là bounding box của block 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
Ý Phiphi có phải là tạo 1 rectangle bo xung quanh block khung tên? với 2 điểm đối diện là bounding box của block khung tên?

Đúng vậy bác Nguyen Hoanh, PP đã gặp nhiều trở ngại khi dùng MPLOT với việc chọn Block (của khung tên)

Thí dụ bản vẽ dưới đây:

Command:MPL

Pick Block:

Select objects: Specify opposite corner: 20 found

Select objects:

bad argument type: lentityp nil

Nhưng nếu vẽ thêm các Rectange cho mổi khung tên thì MPLOT in được ngay.

Kính nhờ Bác Hoanh check giúp.

http://www.cadviet.com/upfiles/2/multiple_drawings.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
Đúng vậy bác Nguyen Hoanh, PP đã gặp nhiều trở ngại khi dùng MPLOT.lsp với việc chọn Block (của khung tên)

Thí dụ bản vẽ dưới đây:

Command:MPL

Pick Block:

Select objects: Specify opposite corner: 20 found

Select objects:

bad argument type: lentityp nil

Nhưng nếu vẽ thêm các Rectange cho mổi khung tên thì MPLOT in được ngay.

Kính nhờ Bác Hoanh check giúp.

http://www.cadviet.com/upfiles/2/multiple_drawings.dwg

lisp B2R (block to rectangle) dưới đây sẽ giúp Phiphi:

(defun c:b2r ()
 (setq ss (ssget '((0 . "INSERT"))))
 (while (setq e (ssname ss 0))
   (setq ss  (ssdel e ss)
  tmp (vla-getboundingbox (vlax-ename->vla-object e) 'p1 'p3)
  p1  (vlax-safearray->list p1)
  p3  (vlax-safearray->list p3)	  
  p1  (list (car p1) (cadr p1))
  p3  (list (car p3) (cadr p3))
  p2  (list (car p1) (cadr p3))
  p4  (list (car p3) (cadr p1))
  tmp (list
	(cons 0 "LWPOLYLINE")
	(cons 100 "AcDbEntity") 
	(cons 100 "AcDbPolyline") 
	(cons 90 4)
	(cons 70 1)
	(cons 10 p1)
	(cons 10 p2)
	(cons 10 p3)
	(cons 10 p4)
      )
   )
   (entmake tmp)
 )
)

  • 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
lisp B2R (block to rectangle) dưới đây sẽ giúp Phiphi:

(defun c:b2r ()
 (setq ss (ssget '((0 . "INSERT"))))
 (while (setq e (ssname ss 0))
   (setq ss  (ssdel e ss)
  tmp (vla-getboundingbox (vlax-ename->vla-object e) 'p1 'p3)
  p1  (vlax-safearray->list p1)
  p3  (vlax-safearray->list p3)	  
  p1  (list (car p1) (cadr p1))
  p3  (list (car p3) (cadr p3))
  p2  (list (car p1) (cadr p3))
  p4  (list (car p3) (cadr p1))
  tmp (list
	(cons 0 "LWPOLYLINE")
	(cons 100 "AcDbEntity") 
	(cons 100 "AcDbPolyline") 
	(cons 90 4)
	(cons 70 1)
	(cons 10 p1)
	(cons 10 p2)
	(cons 10 p3)
	(cons 10 p4)
      )
   )
   (entmake tmp)
 )
)

Chào bác Nguyen Hoanh.

Bác có thể nhập đoạn code trên chung với MPLOT được không.

Như vậy User chỉ cần select các bản vẽ cần in ra hàng loạt mà khỏi phải chọn block khung tên hoặc Rectangle.

Chỉ cần đoạn code trên insert các Rectangle cho việc in xong rồi sẽ tự động xoá đi.

Bản vẽ Multiple drawings mà PP up trên không thể chọn block khung tên để in hàng loạt được.

Bác có phát hiện vì sao không vậy? Các khung tên trên là của AutoDesk tạo để dùng cho các templates trong p/m AutoCAD.

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

Không phải em cố tình không hiểu 2 bác Phiphi và bác Nguyen Hoanh đâu. Nhưng thực ra là em ko hiểu gì thật, ý em đã nói rõ từ đầu là em muốn ghép 50 mảnh bản đồ địa chính ấy lại với nhau bằng lệnh Insert, một cách tự động nghĩa là một lúc có thể em chọn 50 mảnh ấy một lúc. Chứ cứ chèn từng mảnh một, có những lúc tên file không giống nhau em cứ lung tung cả lên các anh ạ. Vậy giờ em phải làm thế nào để có thể tự động được khâu Insert đó. Rất mong 2 bác và các bạn giúp đỡ.

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ào bạn minhphuong_humg,

Sở dĩ vậy là do các bản vẽ gốc của bạn có chừa các khoảng trắng và có các khung bao bản vẽ kèm với khung tên. Nếu bạn muốn cho các bản vẽ dình liền nhau thì bạn cần bỏ đi các khung bao này chỉ để lại hình vẽ và scale nó lên với tỉ lệ tương ứng với khổ bản vẽ. Nhớ là phải kiểm tra tỷ lệ của các bản vẽ sao cho khi insert xong thì nó dính liền được với nhau.

Nếu là bạn định ghép các mảnh bản đồ với nhau thì việc này đòi hỏi bạn phải đánh số thứ tự của các bản vẽ cho hợp lý mới được.

Lisp trên là insert các bản vẽ thành một hàng ngang, còn nếu bạn muốn insert thành một bảng với số cột cho trước thì bạn có thể sử dụng lisp sau với điều kiện các bản vẽ phải có cùng kích thước như nhau.

...

Chúc bạn thành công.

Mình nghỉ lisp trên kg thực hiện đúng đc ý bạn minhphuong_humg đâu. Nếu bản đồ làm đúng qui trình, nó luôn giữ đúng vị trí tọa độ của nó khi đo đạc tính toán, vấn đề tỷ lệ chỉ là để in ra thôi. Do đó, khi Insert vào luôn cho điểm Insert là 0,0,0. tỷ lệ x=y=z=1 là đc.

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 nghỉ lisp trên kg thực hiện đúng đc ý bạn minhphuong_humg đâu. Nếu bản đồ làm đúng qui trình, nó luôn giữ đúng vị trí tọa độ của nó khi đo đạc tính toán, vấn đề tỷ lệ chỉ là để in ra thôi. Do đó, khi Insert vào luôn cho điểm Insert là 0,0,0. tỷ lệ x=y=z=1 là đc.

Vậy nói tóm lại là không có cách nào Insert một lúc 50 file mà cho chúng dính vào nhau được ưh? Vậy cũng hơi nản nhỉ? Vậy mình lại vừa ngồi vừa ghi ra giấy rồi Insert từng tờ một vậy! Nếu bạn nào có cách hay khác xin hướng dẫn nhé!

Xin cảm ơ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

Các anh ơi,em có file thế này

http://www.mediafire.com/?86d7fh80898g8ey

Nếu em dùng lệnh "IMF" để insert nhiều bản vẽ vào chung 1 bản vẽ thì các bản vẽ sau khi insert vào sẽ bị nằm chồng chéo lên nhau,không tách riêng ra từng phần riêng biệt.

Các anh kiểm tra lại và sửa lại dùm em với.

Cảm ơn các anh 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

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  

×