Chuyển đến nội dung
Diễn đàn CADViet
vndesperados

Scale đối tượng một chiều

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

Trường hợp trên bản vẽ có Block name vkc_temp thì hàm DELBLOCK sẽ không có tác dụng--> báo lỗi,

do đó Vndesperados nên đặt tên Block theo cách khác.

 

 

Thanks bạn

Tôi viết code này để mọi người cùng tham khảo, không phải là một ứng dụng để có thể tránh tất cả lỗi có khả năng xảy ra (Mà với kinh nghiệm của tôi thì không có chương trình nào không tồn tại lỗi, thậm chí với chương trình tính tổng hai số).

Theo tôi, thì bạn cũng có khả năng debug đó.

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
thấy các bro thao luận sôi nổi quá, nhưng tôi thấy việc scale theo 2 phương khác nhau chi cần tạo block, sau đó insert và chọn tỷ lệ theo 2 phương khác nhau là ok. có thể nhập tỷ lệ theo dạng phân số a/b trong hộp thoại insert

 

Dùng lisp để giảm thao tác khi dùng cad, được ví như "đuờng chim bay" là thời gian ngắn nhất để thực hiện 1 công việc.

Còn phương án như bạn đề ra thì ai cũng biết, được ví như " đường chim đi xe đạp".

Bạn không thấy là đoạn lisp trên có tác dụng tạo 1 block, chèn theo tỉ lệ x, y, z rồi explode , tiếp đó là purge cái block đó.

Tuy nhiên còn 1 vài điểm thiếu sót là :

- Chưa kiểm xem block này đã có sẵn trong bản vẽ hay chưa.

- Purg rồi mà vẫn chèn được block đó vào bản vẽ (purge chưa hết), chắc phải repeat purge cho chắc ă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
Dùng lisp để giảm thao tác khi dùng cad, được ví như "đuờng chim bay" là thời gian ngắn nhất để thực hiện 1 công việc.

Còn phương án như bạn đề ra thì ai cũng biết, được ví như " đường chim đi xe đạp".

Tui nghĩ là ý tưởng Scale đối tượng một chiều của Vndesperados là phương án tốt nhất. (cho đến Cad 2004)

 

Bạn có thể giới thiệu một phương án khác ? Đối với dân lập trình : Ý tưởng mới là quan trọng, Coding là chuyện 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
Đây là đọan code scale đối tượng một chiều

Lệnh là XSC hoặc XSCALE

 

;Scale the mot chieu
(DEFUN EXCUTE()
 (setq oldvalue (getvar "CMDECHO"))
 (setvar "CMDECHO" 0)
 (princ "Chon doi tuong can scale: ")
 (setq ss (ssget))
 (setq P0 (getpoint "\nChon diem goc: "))
 (initget 1 "X Y X S")
 (setq C (getkword "\nScale theo [X,Y,Z,Scale]? :"))
 (setq hs (getreal "Cho biet he so scale: "))
 (DELBLOCK "vkc_temp")
 (CREATEBLOCK ss P0)  
 (Command "-Insert" "vkc_temp" C hs P0 "")   
 (setq dt (entlast))
 (Command "Explode" dt)
 (setvar "CMDECHO" oldvalue)
 (princ)
)
(DEFUN CREATEBLOCK(ss P)
 (command "-Block" "vkc_temp" P ss "")
)

(DEFUN DELBLOCK (bname)
 (if (IsExistBlock bname)
(Command "-Purge" "B" bname "Y" "Y")	
 )
)
(DEFUN IsExistBlock(bname / kq)
 (setq kq Nil)
 (setq n (length LiBlk))
 (setq i 0)
 (while (< i n)
(if (= bname (nth i LiBlk))
  (progn
(setq i n)
(setq kq T)
  )	
)
(setq i (1+ i))
 )
 kq
)
(DEFUN CREALIBLK (/ NL)
 (setq LiBlk (List))
 (setq NL (tblnext "BLOCK" T))  
 (while NL	
(setq LiBlk (append LiBlk (list (cdr (assoc 2 NL)))))
(setq NL (tblnext "BLOCK"))
 )
 (setq LiBlk (Acad_strlsort LiBlk))
)
(DEFUN C:XSCALE()
 (CREALIBLK)
 (EXCUTE)
)
(DEFUN C:XSC()
 (CREALIBLK)
 (EXCUTE)
)

Anh Hoành ơi, làm ơn giúp mình một Lisp dùng trong công tác nắn bản vẽ Ảnh.

Ví dụ như mình có một tờ bản đồ ảnh trên đó thể hiện các hình thể địa hình tự nhiên, sau khi đo đạc vào các điểm chuẩn trên ảnh tương ứng ngoài thực tế có tọa độ có tọa độ các điểm, chuyển điểm lên Cad.

Mình muốn nhờ anh giúp lisp : yêu cầu load ảnh vào, chọn điểm trên ành chỉ vảo điểm cần nắn đến, ... chọn nhiều điểm càng tốt.

Khi thực hiện thì lisp kéo ra hoặc thu lại các điểm của ảnh vào đúng vị trí các điểm trên cad.

Mong được anh 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

Lisp scale đối tượng một chiều rất hữu ích, rất mong các bác trên diễn đàn có thể phát triển Lisp này để dùng trong công tác nắn ảnh như bác Khaosat2009 mô tả để mỗi khi anh em trắc địa thực hiện công tác nắn ảnh không phải dùng đến phần mềm khác mà thao tác lại phức tạp.

Xin cảm ơn các bác món quà Lisp !

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 scale đối tượng một chiều rất hữu ích, rất mong các bác trên diễn đàn có thể phát triển Lisp này để dùng trong công tác nắn ảnh như bác Khaosat2009 mô tả để mỗi khi anh em trắc địa thực hiện công tác nắn ảnh không phải dùng đến phần mềm khác mà thao tác lại phức tạp.

Xin cảm ơn các bác món quà Lisp !

Hề hề hề,

Vì trên diễn đàn có rất nhiều người ngoại ngạch chuyện môn của các bác nên không hiểu hết ý tưởng của các bác. Rất mong các bác gửi file ảnh và file CAD mà các bác muốn nắn cái ảnh vô đó, đồng thời nếu không quá bí mật quân sự các bác có thể gửi một phần file mẫu đã được nắn xong để mọi người ngâm cứu thử.

Nếu không được vậy thì có nhẽ các bác sẽ phải tự cứu thôi chứ khó có người hiểu hết nhu cầu của các bác để mà làm lisp cho đúng được.

Hề hề hề, mong các bác lưu tâ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

Mình gửi các bác ảnh và bản vẽ để nắn ảnh

 

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

 

Trong quá trình nắn ảnh việc lựa chọn nhiều điểm trên ảnh dùng để nắn vào các điểm trên bản vẽ là rất quan trọng vì nó liên quan đến độ chính xác.

 

Lưu ý : Cho đến nay thì chưa có chương trình nào nắn ảnh chính xác một cách tuyệt đối cả, tất cả mới chỉ là tương đối.

 

Rất mong các bác trên diễn đàn có thể phát triển Lisp Scale đối tượng thành lisp có thể phục vụ cho công việc nắn ảnh để anh em trắc địa đỡ vất vả trong công việc này.

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

Xem file kết quả hổng hiểu chi cả :D Sao mình thấy nó giống công việc của 2 lệnh Pa và Align 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

Xem file kết quả hổng hiểu chi cả :D Sao mình thấy nó giống công việc của 2 lệnh Pa và Align nhỉ :)

 

Để thực hiện được việc nắn ảnh trên thì

- Load ảnh vào vị trí bất kỳ trên bản vẻ (Như VD mình gửi )

- Dùng lệnh Aligin để đưa 1,2 hoặc 3 điểm trên ảnh trùng với điểm trên bản vẽ

- Dùng Lisp Scale để nắn chỉnh ( n điểm) trên ảnh trùng với ( n điểm ) trên bản vẽ.

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 gửi các bác ảnh và bản vẽ để nắn ảnh

 

http://www.cadviet.c...les/3/vd_14.rar

 

Trong quá trình nắn ảnh việc lựa chọn nhiều điểm trên ảnh dùng để nắn vào các điểm trên bản vẽ là rất quan trọng vì nó liên quan đến độ chính xác.

 

Lưu ý : Cho đến nay thì chưa có chương trình nào nắn ảnh chính xác một cách tuyệt đối cả, tất cả mới chỉ là tương đối.

 

Rất mong các bác trên diễn đàn có thể phát triển Lisp Scale đối tượng thành lisp có thể phục vụ cho công việc nắn ảnh để anh em trắc địa đỡ vất vả trong công việc này.

Xin cảm ơn !

Hi Ngocthanh_2010,

Cad Overlay chạy trên nền Cad tương ứng, có thể nắn ảnh lại rất tốt. Bạn nên tìm trên mạng tải về dùng. Học sử dụng phần mềm này cũng rất nhanh thôi mà. Ngoài nắn ảnh, Cad Overlay cũng có thể cắt ảnh, số hóa tự động, ....

Chúc bạn vui.

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

Hi Ngocthanh_2010,

Cad Overlay chạy trên nền Cad tương ứng, có thể nắn ảnh lại rất tốt. Bạn nên tìm trên mạng tải về dùng. Học sử dụng phần mềm này cũng rất nhanh thôi mà. Ngoài nắn ảnh, Cad Overlay cũng có thể cắt ảnh, số hóa tự động, ....

Chúc bạn vui.

 

Thật sự mà nói đến khi bạn nói có Cad Overlay thì mình nói biết chứ từ xưa đến nay mình chỉ biết Cad thôi,

Mình sẽ tìm hiểu về Cad Overlay, nếu có j chưa rõ mong bạn chỉ giáo. Hi

Cảm ơn bạn rất 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

Lệnh Scale trong Lisp này rất hay, nhưng mà có một điều bất lợi là, mình không cần biết tỷ lệ Scale bao nhiêu, chỉ cần click chọn đối tượng Scale 1 chiều này đến vị trí mình muốn thì làm như thế nào. Các anh chỉ dùm, hay có thể sửa Lisp

  • Vote giảm 2

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

Lệnh Scale trong Lisp này rất hay, nhưng mà có một điều bất lợi là, mình không cần biết tỷ lệ Scale bao nhiêu, chỉ cần click chọn đối tượng Scale 1 chiều này đến vị trí mình muốn thì làm như thế nào. Các anh chỉ dùm, hay có thể sửa Lisp

 

Cách đây 6 năm tính thêm cả tuổi mụ nữa là bẩy năm, chắc chắn là anh đã biết Scale với sự lựa chọn tham số R, khi anh viết bài trong chủ đề lày: http://www.cadviet.com/forum/topic/9180-cach-dung-lua-chon-r-trong-lenh-scale/

 

Phải chăng anh đang "luyện chiêu" : http://chinhem.com/hieu-luat-choi/tam-ly-dan-ong/dan-ong-phai-lam-gi-khi-bi-bo-da/??? :) :) :)

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

×