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

nhờ các anh chị viết dùm em lisp chọn layer 0

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

Em là họa viên kiến trúc đang làm việc cho một công ty của Đức.Công việc của em là số hóa bản vẽ có nghĩa là khách hàng gửi cho em file Scan,em vẽ lại theo đúng kích thước,layer của công ty hoặc của khách hàng.File scan của em nằm ở layer 0,nên khi vẽ em thường xuyên phải di chuyển layer 0(file Scan) thì phải chọn file scan rất mất thời gian.Nên em mạo mụi nhờ các anh chị trong diễn đàn viết dùm em lisp chỉ cần đánh lệnh thì tấc cả các đối tượng nằm ở layer 0 sẽ được chọn để di chuyển(move).Em đang rất cần kính mong các anh chị giúp đỡ,em xin thành thật 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

Bạn thử dùng cái này xem sao.Cần chọn tất cả các đối tượng của layer nào thì kick vào 1 đôi tượng thuộc layer đó.Cũng có thể đặt mặc định chọn layer 0,nhưng mình nghĩ nó không mang tính tổng quát ^^

(defun c:sla ()
 (setq doituongdich (car (entsel "\nChon doi tuong")))
 (setq layerdich (assoc 8 (entget doituongdich)))
 (sssetfirst nil (ssget "_X" (list layerdich)))
 (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
Em là họa viên kiến trúc đang làm việc cho một công ty của Đức.Công việc của em là số hóa bản vẽ có nghĩa là khách hàng gửi cho em file Scan,em vẽ lại theo đúng kích thước,layer của công ty hoặc của khách hàng.File scan của em nằm ở layer 0,nên khi vẽ em thường xuyên phải di chuyển layer 0(file Scan) thì phải chọn file scan rất mất thời gian.Nên em mạo mụi nhờ các anh chị trong diễn đàn viết dùm em lisp chỉ cần đánh lệnh thì tấc cả các đối tượng nằm ở layer 0 sẽ được chọn để di chuyển(move).Em đang rất cần kính mong các anh chị giúp đỡ,em xin thành thật cảm ơn.

cám ơn bạn,nhưng đây không phải lisp mình cần.trong bản vẽ của mình chỉ co file scan là ở layer o.nên mình chỉ muốn chọn nó để di chuyển tại vì trong bản vẽ mình phải di chuyển file scan rất nhiều mà mình ko muốn click chọn nó,vì file scan rất nặng nên mỗi lần chọn phải zoom lên rất lâu,có khi đứng máy,mong các bạn giúp đỡ.cám ơn các bạ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

(defun c:0 ()
(setq 0layer (ssget "_x" '((8 . "0"))));; 
(sssetfirst nil 0layer)
(princ)
)

Vậy bạn dùng cái này nhé :(

Mình mới tập toẹ nên hiểu vấn đề hơi chậ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à theo mình hiểu thì bạn vẽ lại từ bản vẽ cứng,nên thưỡng xuyên phải zoom lên nhìn bản gốc để vẽ lại.Vậy theo mình tốt hơn bạn nên chia màn hình,1 cái bên trên là bản scan,cái bên dưới là phần bạn vẽ.Kết hợp với Ctrl 0 thì cũng thoải mái thao tác,mà lại không phải zoom đi pan lạ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

Nếu có thể

Bạn gửi cái file SCAN đó lên diễn đàn được ko?

Mình sẽ ngâm cứu giúp bạn

Chắc chắn sẽ có những ý tưởng hay giúp 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
Nếu có thể

Bạn gửi cái file SCAN đó lên diễn đàn được ko?

Mình sẽ ngâm cứu giúp bạn

Chắc chắn sẽ có những ý tưởng hay giúp bạn

Mình up lên 1 vài bản vẽ,file scan,mong bạn và các anh,chị trên diễn đàn chỉ giáo cách vẽ đúng và nhanh nhất.

http://www.cadviet.com/upfiles/3/xin_chi_giao.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
cám ơn bạn,nhưng đây không phải lisp mình cần.trong bản vẽ của mình chỉ co file scan là ở layer o.nên mình chỉ muốn chọn nó để di chuyển tại vì trong bản vẽ mình phải di chuyển file scan rất nhiều mà mình ko muốn click chọn nó,vì file scan rất nặng nên mỗi lần chọn phải zoom lên rất lâu,có khi đứng máy,mong các bạn giúp đỡ.cám ơn các bạn nhiều.

cám ơn bạn,mình chọn được layer 0 rồi (file scan).bạn làm ơn cho mình thêm chức năng move nữa nha,có nghĩa là khi đánh lệnh thì chọn file scan và cho ta move, khỏi phải mất công nhập lệnh move.

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 tặng chú em nè

Có j không hiểu cứ pm đại ka

:(

 

(defun c:mm (/)
 (setvar "cmdecho" 0)
 (setq	ss (ssget "X"
	  '(
	    (-4 . "		    (0 . "IMAGE")
	    (8 . "0")
	    (-4 . "AND>")
	   )
   )
 )
 (command "move" ss "")
 (command "pause")
)

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 tặng chú em nè

Có j không hiểu cứ pm đại ka

:(

 

(defun c:mm (/)
 (setvar "cmdecho" 0)
 (setq	ss (ssget "X"
	  '(
	    (-4 . "		    (0 . "IMAGE")
	    (8 . "0")
	    (-4 . "AND>")
	   )
   )
 )
 (command "move" ss "")
 (command "pause")
)

 

ko được đại ca ơi,cứu em với nó báo ; error: bad point argument

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

Sao kô đc chú

Cú pháp như sau

load file mm.lsp lên

Theo thứ tự thế này

1. Bấm lệnh mm

2. Click chuột trái chon điểm thứ 1 bắt đầu move

3. Click chuột trái chon điểm thứ 2 để move

Hết

 

Mà sao chú không xài thử thằng này

Biến IMAGE thành AutoCad cho dễ chỉnh sửa, nhẹ hều à

Link nè

http://teen.vno.vn/showthread.php?21755-Im...-thanh-file-cad

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
Sao kô đc chú

Cú pháp như sau

load file mm.lsp lên

Theo thứ tự thế này

1. Bấm lệnh mm

2. Click chuột trái chon điểm thứ 1 bắt đầu move

3. Click chuột trái chon điểm thứ 2 để move

Hết

 

Mà sao chú không xài thử thằng này

Biến IMAGE thành AutoCad cho dễ chỉnh sửa, nhẹ hều à

Link nè

http://teen.vno.vn/showthread.php?21755-Im...-thanh-file-cad

 

ko đươc anh ơi,nó báo ; error: bad point argument.Biến IMAGE thành AutoCad cho dễ chỉnh sửa, nhẹ hều à là đều ko thể vì mình phải vẽ lại cho đúng kiến trúc và layer cho khà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
(defun c:0()
(setq 0layer (ssget "_x" '((8 . "0"))));; 
(sssetfirst nil 0layer)
(command "_move" "p" "")
)

Bạn thử xem sao 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
(defun c:0()
(setq 0layer (ssget "_x" '((8 . "0"))));; 
(sssetfirst nil 0layer)
(command "_move" "p" "")
)

Bạn thử xem sao nhé ^^

Sao phải dài dòng vậy bạn? Code như sau có tác dụng tương đương:

 

(defun C:0() (command "move" (ssget "X" '(( 8 . "0"))) "" pause))

  • Vote tăng 3

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

Hì..Ban đầu viết đoạn chọn layer0 như bạn thanhsitp yêu cầu,rồi sau có thêm yêu cầu move nữa,nên mình add thêm cái cmd move vào thôi,cũng chưa nghĩ đến cách tối giản code.

Ngay đoạn chọn đối tượng layer 0,mình đã nghĩ chỉ cần

(sssetfirst nil (ssget "_x" '((8 . "0")))) là đủ,nhưng vì mình mới bắt đầu học lsp nên nó cứ dễ bị nhầm khi coding,phải kiểm tra mấy lần mới chuẩn(),'",đành phải rườm rà chút cho chắc ^^.Nhưng với những người thành thạo,có lẽ sẽ đơn giản hơn rất nhiều.Dần dần mình sẽ cải thiện

Cám ơn bạn nhihều ^^.

  • 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
ko đươc anh ơi,nó báo ; error: bad point argument.Biến IMAGE thành AutoCad cho dễ chỉnh sửa, nhẹ hều à là đều ko thể vì mình phải vẽ lại cho đúng kiến trúc và layer cho khàng.

 

Trời

Bác nghiên cứu cái này chưa

Rất hay

này nhé, bác làm theo trình tự như thế này sẽ thấy cái ký diệu của nó

1. Bác dùng phần mềm convert file Image *.tif ra file dxf bác sẽ được 1 file Cad hoàn chỉnh

2. Mở file ra chon tất cả các đối tượng về cùng chung 1 GROUP (hay BLOCK thì ko tiện = group) thì tuỳ (tất nhiên là khi thao tác trong AutoCAD sẽ nhẹ nhàng vô cùng so với khi bác thao tác với Image bác chèn vào bản vẽ và move như yêu cầu của bác rất công)

3. Sử dụng lệnh Align chọn đối tượng đưa toàn bộ bản vẽ về 1 tỷ lệ chính xác đúng theo kích thưóc bạn vẽ

4. Từ đây bạn bắt đầu thao tác vẽ lại y như bản IMAGE ban đầu :

- Chèn block các ghế, bàn ăn, giường, toalet, bồn tắm nằm .... bằng cách insert và align vào đúng rất dễ dàng bằng cách bắt điểm chính xác (mà điều này khi thao tác với file image rất khó, tốn nhiều công đoạn)

- Ghi kích thước cũng dễ dàng khi có chế độ chon điểm chính xác

- Bạn vẽ lại tới đâu thì xoá đối tượng cũ cũng dễ và bạn sẽ biết được việc làm của mình tới đâu rồi, thiếu chỗ nào ....

 

Trên đây là suy nghĩ và quan điểm của mình

Bạn có thể thử và làm theo xem thử cách nào nhanh nhất và tốt nhất

Nếu không thì bạn có thể bỏ qua

 

Đay là file mình đã convert từ *.tiff qua *.dxf và chỉ cần lọc bỏ các LINE, POLYLINE có chiều dài nhỏ là OK

http://www.cadviet.com/upfiles/3/0421.rar

  • 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
Trời

Bác nghiên cứu cái này chưa

Rất hay

này nhé, bác làm theo trình tự như thế này sẽ thấy cái ký diệu của nó

1. Bác dùng phần mềm convert file Image *.tif ra file dxf bác sẽ được 1 file Cad hoàn chỉnh

2. Mở file ra chon tất cả các đối tượng về cùng chung 1 GROUP (hay BLOCK thì ko tiện = group) thì tuỳ (tất nhiên là khi thao tác trong AutoCAD sẽ nhẹ nhàng vô cùng so với khi bác thao tác với Image bác chèn vào bản vẽ và move như yêu cầu của bác rất công)

3. Sử dụng lệnh Align chọn đối tượng đưa toàn bộ bản vẽ về 1 tỷ lệ chính xác đúng theo kích thưóc bạn vẽ

4. Từ đây bạn bắt đầu thao tác vẽ lại y như bản IMAGE ban đầu :

- Chèn block các ghế, bàn ăn, giường, toalet, bồn tắm nằm .... bằng cách insert và align vào đúng rất dễ dàng bằng cách bắt điểm chính xác (mà điều này khi thao tác với file image rất khó, tốn nhiều công đoạn)

- Ghi kích thước cũng dễ dàng khi có chế độ chon điểm chính xác

- Bạn vẽ lại tới đâu thì xoá đối tượng cũ cũng dễ và bạn sẽ biết được việc làm của mình tới đâu rồi, thiếu chỗ nào ....

 

Trên đây là suy nghĩ và quan điểm của mình

Bạn có thể thử và làm theo xem thử cách nào nhanh nhất và tốt nhất

Nếu không thì bạn có thể bỏ qua

 

Đay là file mình đã convert từ *.tiff qua *.dxf và chỉ cần lọc bỏ các LINE, POLYLINE có chiều dài nhỏ là OK

http://www.cadviet.com/upfiles/3/0421.rar

cám ơn bạn,nhưng cách của bạn là ko thể,nó còn chậm hơn cách của mình nhiều,cty mình ko ai làm cách của bạn cả.bản vẽ của mình được tính bằng giờ,file 0421 mình chỉ cần 2 giờ là vẽ xong đúng layer,kích thướt,kiến trúc...chỉ cần 2 giờ là hoàn thiện tấc cả.nếu vẽ âm giờ nhiều quá,vẽ sai thì chẳng được tăng lương mà còn mất việc như chơi đấy 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

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  

×