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

Lisp khoá bản vẽ. Đã hoàn thành và cùng thảo luận.

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

Trước đây mình khá đau đầu về việc khoá bản vẽ, có thể khoá bằng MINSERT, tuy nhiên có khoá thì có phá.

Theo như tìm hiểu thì có một đơn vị nào đó bán chương trình khoá bản vẽ và phải load lisp mới xem được file. Nếu không load lisp thì các object sẽ nhảy lung tung lệch toạ độ. Từ đó mình nảy sinh ý tưởng về việc này. Nói là đánh cắp ý tưởng nhưng trên thực tế lisp hoàn toàn do mình viết ra.

 

Thuật toán chia làm 2 phần. 

Phần 1: Khoá Bản vẽ 

Đưa toàn bộ đối tượng về layer Defpoint, gán màu đối tượng theo layer trước đó. 

Từng đối tượng trong bản vẽ được tạo block MINSERT và đưa về toạ độ (0 0), (nếu có bẻ khoá được thì cũng rất mất công trong việc phá MINSERT cho từng đối tượng trong bản vẽ và gán lại layer phù hợp)

Lập danh sách tên đối tượng và toạ độ cũ để ghi vào phần 2

Lưu file lisp dạng FAS để gửi cho người xem bản vẽ.

Tên Lệnh LOCKDWG

Lưu ý. Sử dung VLISP sẵn của Autocad. Nếu Đang sử dụng Visual studio Code thì đổi variable LISPSYS về 0 trước khi sử dụng

 

Phần 2: Xem bản vẽ.

Thuật toàn bắt nguồn từ việc sử dụng Reactor để nhận diện những hành động không cho phép như Copy, Cut, Wblock, Save, Save As...

Trước mỗi hành động đó sảy ra Toàn bộ đối tượng tự động đưa về toạ độ (0 0)

Khi load lisp Xem Bản vẽ các đối tượng sẽ được đưa về toạ độ chính xác theo danh sách đã lập từ phần 1.

Tên Lệnh: "tự động khi load lisp" và ViewDWGLOCK

 

 

Mình gửi kèm file VLX ở cuối bài và sẽ không công khai lisp vì sẽ làm lộ mã nguồn dẫn đến việc crack bản vẽ bị khoá 1 cách dễ dàng. Anh em Code chuyên nghiệp thì không cần lisp vẫn phá khoá được thôi. :)) Nếu bạn nào thực sự muốn xin lisp để nghiên cứu có thể để lại email mình sẽ chọn lọc và gửi riêng.

 

 

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

Tui thì không cần khóa bản vẽ nhưng vì bạn nói "cùng thảo luận" nên nếu bạn đồng ý để thảo luận thì gởi cho xin file *.lsp để xem mới thảo luận được.
Bạn có thể gởi vào hộp tin nhắn trên forum. Thanks!

  • Like 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 phải post 1 file cad đã được khóa bằng vlx của bạn để xem có ai phá dược không thì mới "thảo luận" được chứ 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
23 phút trước, Doan Van Ha đã nói:

Tui thì không cần khóa bản vẽ nhưng vì bạn nói "cùng thảo luận" nên nếu bạn đồng ý để thảo luận thì gởi cho xin file *.lsp để xem mới thảo luận được.
Bạn có thể gởi vào hộp tin nhắn trên forum. Thanks!

Bạn chặn nhận tin nhắn thì phải mình không gửi thư riêng cho bạn được.image.png.13902a37a39e19c7fed8589ebdccabcc.png

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
8 phút trước, 7o7 đã nói:

Bạn phải post 1 file cad đã được khóa bằng vlx của bạn để xem có ai phá dược không thì mới "thảo luận" được chứ nhỉ?

Đồng ý ạ. Mình gửi file nhé.Bên trong gồm có 1 file cad, 1 file lisp FAS.

file test.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
53 phút trước, tannguyen291 đã nói:

Bạn chặn nhận tin nhắn thì phải mình không gửi thư riêng cho bạn được.

Hộp tin bị đầy. Vừa mới xóa bớt xong ạ.

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

E hèm! Tôi mở 1 new, vẽ 1 line, load vlx, dùng LOCKDWG. Nó chỉ biến line thành block, nhưng vẫn copy, move, delete... vô tư.
Vậy là sao bạn ơ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
1 giờ} trướ}c, Doan Van Ha đã nói:

E hèm! Tôi mở 1 new, vẽ 1 line, load vlx, dùng LOCKDWG. Nó chỉ biến line thành block, nhưng vẫn copy, move, delete... vô tư.
 Vậy là sao bạn ơi?

Vẫn copy được nhưng nó bị sai toạ độ bác ơi. không in được nữa ạ. Mục đích làm như vậy là gửi file cad mà người nhận không thể sử dụng được tránh mất bản quyền khi chưa ký hợp đồ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
18 phút trước, tannguyen291 đã nói:

Vẫn copy được nhưng nó bị sai toạ độ bác ơi. không in được nữa ạ. Mục đích làm như vậy là gửi file cad mà người nhận không thể sử dụng được tránh mất bản quyền khi chưa ký hợp đồng.

image.png

Hình trên vẽ 1 Line và 1 Circle có tâm tại 1 đầu của Line.
Sau khi LOCKDWG chúng tạo thành 2 block có tâm là tâm Line và tâm Circle tại (0 0).
Như vậy là bản vẽ đã bị sai khác so với ban đầu rồi thì cấp cho người ta sao đượ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
20 phút trước, Doan Van Ha đã nói:

image.png

Hình trên vẽ 1 Line và 1 Circle có tâm tại 1 đầu của Line.
Sau khi LOCKDWG chúng tạo thành 2 block có tâm là tâm Line và tâm Circle tại (0 0).
Như vậy là bản vẽ đã bị sai khác so với ban đầu rồi thì cấp cho người ta sao được?

Khi chạy lisp khoá. Chương trình yêu cầu người dùng lưu  lisp fas. Lisp này có tính năng xem bản vẽ chuẩn và cài các chức năng reactor. Mình gửi file cad kèm theo lisp fas đó buộc người xem phải load lisp thứ fas cài cắm reactor bên trong.

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 giờ} trướ}c, Nguyễn Hà Huy đã nói:

cái này bác phải bỏ luôn cái copy đi, copy rồi dán vào file cad mới vẽ lại hoặc pro nào past ko bị lỗi thì sao

  

Các đối tượng đã bị nhảy loạn cả lên rồi mà bạn. Coppy qua file khác thì nó thành như thế này.

nói chung thì vẫn không sử dụng được. :))

image.thumb.png.5cadbe850130210fa238d156181fbace.png

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
30 phút trước, ndtnv đã nói:

Viết 1 lisp chưa hoàn chỉnh vì chưa xét scale và rotation cũng như chưa xét block thì hiển thị gần hết

 QH03A.QH SDD.dwg <====== Sao hay vậy

Thánh đây rồi.Bác làm như thế nào vậy để em nghiên cứu thêm. crack bằng cách dùng lisp đổi Insert block rồi xoá Minsert của em đi rồi explode phải 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
2 phút trước, Doan Nguyen Van đã nói:

Thế này đã xem được chưa bác nhỉ 

Q2.dwg

Bác biết code của em rồi. Định nghĩa lại hàm Reactor thì lưu được file. Riêng bác không tí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
2 phút trước, tannguyen291 đã nói:

Bác biết code của em rồi. Định nghĩa lại hàm Reactor thì lưu được file. Riêng bác không tính. :))

Bác nhầm mình với ai rồi, hqua xin code không thấy bác gử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
2 phút trước, Doan Nguyen Van đã nói:

Bác nhầm mình với ai rồi, hqua xin code không thấy bác gửi 

À em nhầm bác với bác Doan Van Ha. sr bác nhé.Nhưng em không thấy tin nhắn hoặc yêu cầu xin code. Bác làm như thế nào vậy?  để em gửi file code cho bác 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
8 phút trước, tannguyen291 đã nói:

À em nhầm bác với bác Doan Van Ha. sr bác nhé.Nhưng em không thấy tin nhắn hoặc yêu cầu xin code. Bác làm như thế nào vậy?  để em gửi file code cho bác nhé. 

Nếu được thì gửi cho mình tham khảo trong phần tin nhắ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
1 giờ} trướ}c, tannguyen291 đã nói:

Thánh đây rồi.Bác làm như thế nào vậy để em nghiên cứu thêm. crack bằng cách dùng lisp đổi Insert block rồi xoá Minsert của em đi rồi explode phải không ạ.

Đúng 1/2 là xóa Minsert.

Dùng entmake vẽ đối tượng trong Minsert chứ không explode

 

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 giờ} trướ}c, ndtnv đã nói:

Đúng 1/2 là xóa Minsert.

Dùng entmake vẽ đối tượng trong Minsert chứ không explode

 

Cách của bác thì khó khoá thật đấy. Em gửi bác code nhé cùng thảo luận xem như thế nào khoá an toàn hơ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

- Ở trên là cho người không biết lisp.

- Biết lisp thì cũng chỉ cần dùng 1 hàm lisp cung cấp, là mấy cái reactor kia tê liệt ngay và luôn, sau đó muốn làm gì với bản vẽ thì làm.

  • Like 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
19 phút trước, NTHAHT đã nói:

- Ở trên là cho người không biết lisp.

- Biết lisp thì cũng chỉ cần dùng 1 hàm lisp cung cấp, là mấy cái reactor kia tê liệt ngay và luôn, sau đó muốn làm gì với bản vẽ thì làm.

Hầu hết các phương án khoá đều bó tay với người biết crack :-D 

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
38 phút trước, NTHAHT đã nói:

- Ở trên là cho người không biết lisp.

- Biết lisp thì cũng chỉ cần dùng 1 hàm lisp cung cấp, là mấy cái reactor kia tê liệt ngay và luôn, sau đó muốn làm gì với bản vẽ thì làm.

Chữ tô đen hay mà chưa thấy tiết lộ luôn cho đỡ mò nhỉ? Hihi.

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
3 phút trước, Doan Van Ha đã nói:

Chữ tô đen hay mà chưa thấy tiết lộ luôn cho đỡ mò nhỉ? Hihi.

Hàm nguyên bản đây bác, chỉ cần paste vào dòng command là được rồi:

(vlr-remove-all)

  • Like 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

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

×