Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
NTD

[Yêu Cầu] Xin Lisp dùng chống lại 1nhóm lệnh nào đó

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

NTD    11

Em xin Lisp dùng chống lại 1nhóm lệnh nào đó .( em ko muốn dùng khóa Lock Layer vì sẽ khóa cả Layer mà trong Layer bị khóa có nhiều đối tượng vẫn muốn thao tác )

VD : Em xin Lisp chống lại 1 nhóm lệnh Move-Rotate-Scale-ALign-Stretch . Lisp sẽ làm các đối tượng đc chọn ko thể bị các lệnh trên làm thay đổi

Ứng dụng : như ko cho ng khác cố tình hay vô tình move các điểm mốc quan trọng trong cái File Mặt Bằng Hiện Trạng của Quy Hoạch .

Chống lại các nhóm lệnh khác thì em sẽ dựa vào code của các bác để tự chế = cách thay tên lệnh

Tất nhiên các bác cho em cái khóa thì cũng cho em xin cai Lisp chìa khóa luôn để em còn Unlock lệnh Lock của các bác đc

Em cảm ơn cả nhà .Các bác có hứng với topic này thì mai đi Off Line các bác phát biểu thoái mái đi , em chỉ uống thôi :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
Thaistreetz    515

Bàn về vấn đề này không biết bao nhiêu lần rồi. mới hôm trước cũng có ông lập 1 topic tương tự. hnay lại đến lượt 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
NTD    11

Nghe bác thế nói có nghĩa là Lisp ko thể làm đc ư ? chài !

Em tưởng cái này thưc tế vì bên 3DMAX em có 1 cái Scrip có tính năng Lock y như em mô tả , đây gửi các bác xem qua biết đâu các bác lại vọc đc vấn đề này từ 1 cái đã có tương tự của MAX vói NET , VBA... hay phần mềm nào đó ngoài Lisp

http://www.cadviet.c..._objectlock.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
NTD    11

Khi đưa ra yêu cầu này em có biết trong CAD cơ bản ko dùng Lisp đã có 1 lệnh là HIDEOBJECTS , đối tượng bị lệnh này chọn sẽ chống lại ảnh hưởng của của lệnh LayOn & LayThw trong bất kỳ trường hơp nào kể cả dùng LISP LayOn & LayThw

- HIDEOBJECTS là cái khóa ISOLATEOBJECTS cũng tương tự

- UNISOLATEOBJECTS chính là cái chìa của 2 cái khóa trê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
NTD    11

Tương tự như công năng của nhóm lện trên em down trên cadviet 1 nhóm lệnh sau chống lại LayOn & LayThw & chống lại cả UNISOLATEOBJECTS nữa

 

(defun c:E5 (/ SSet Count Elem)

 (defun Dxf (Id Obj)
(cdr (assoc Id (entget Obj)))
 );end Dxf

 (prompt "\nSelect object(s) to hide: ")
 (cond
((setq SSet (ssget))
(repeat (setq Count (sslength SSet))
  	(setq Count (1- COunt)
 	Elem (ssname SSet Count))
  	(if (/= 4 (logand 4 (Dxf 70 (tblobjname "layer" (Dxf 8 Elem)))))
 (if (Dxf 60 Elem)
(entmod (subst '(60 . 1) (assoc 60 (entget Elem)) (entget Elem)))
(entmod (append (entget Elem) (list '(60 . 1))))
 )
 (prompt "\nEntity on a locked layer. Cannot hide this entity. ")
  	);end if
);end repeat
)  
 );end cond
 (princ)
);end c:InVis

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
Tue_NV    3.841

Em xin Lisp dùng chống lại 1nhóm lệnh nào đó .( em ko muốn dùng khóa Lock Layer vì sẽ khóa cả Layer mà trong Layer bị khóa có nhiều đối tượng vẫn muốn thao tác )

VD : Em xin Lisp chống lại 1 nhóm lệnh Move-Rotate-Scale-ALign-Stretch . Lisp sẽ làm các đối tượng đc chọn ko thể bị các lệnh trên làm thay đổi

Ứng dụng : như ko cho ng khác cố tình hay vô tình move các điểm mốc quan trọng trong cái File Mặt Bằng Hiện Trạng của Quy Hoạch .

Chống lại các nhóm lệnh khác thì em sẽ dựa vào code của các bác để tự chế = cách thay tên lệnh

Tất nhiên các bác cho em cái khóa thì cũng cho em xin cai Lisp chìa khóa luôn để em còn Unlock lệnh Lock của các bác đc

Em cảm ơn cả nhà .Các bác có hứng với topic này thì mai đi Off Line các bác phát biểu thoái mái đi , em chỉ uống thôi :D

Cái khoá đó đây nè:

Bạn dùng CAD2012 thử Move-Rotate-Scale-ALign-Stretch đoạn Line này thử xem:

http://www.cadviet.com/upfiles/3/4652_khoa.dwg

  • 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
NTD    11

Cái khoá đó đây nè:

Bạn dùng CAD2012 thử Move-Rotate-Scale-ALign-Stretch đoạn Line này thử xem:

http://www.cadviet.c...3/4652_khoa.dwg

 

Ôi vãi chưởng , đúng cái em cần rồi , Bác dạy em đi , chài ơi , sao cadviet lắm cao thủ thế , hay tại trình CAD của em lởm quá !

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
Tue_NV    3.841

 

Ôi vãi chưởng , đúng cái em cần rồi , Bác dạy em đi , chài ơi , sao cadviet lắm cao thủ thế , hay tại trình CAD của em lởm quá !

Bạn xem video nhé

Với Line ta khoá 2 đầu

Với Pline ta khoá các đỉnh của nó

Với Point thì khoá điểm của nó

.....

Với các đối tượng khác, bạn tự suy ra phải khoá ở đâu rồi, phải không bạn?

  • Vote tăng 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
NTD    11

Chài Premetric rơi đúng vùng chưa biết của em , em sẽ voc nó nhiều hơn vì thấy cái này có nhiều ứng dụng quá,

Nhưng vấn đề là mới vọc 5p đã khóa và mở khóa ngon lành ==> khóa này chưa chắc , ai biêt về Premetric sẽ mở ngon lành

Mà khóa kiểu này xem ra mất công sức quá thậm chí ko khả thi nếu phải làm với 1 hàng trăm đối tượng

Nếu bác Tue_NV viết đc 1 Lisp làm sao để cho chon nhiều đối tượng và tự động nhận dạng đối tượng & cũng tự động chon điểm khóa hết lại thì may ra mới đưa vô thưc tế để khóa bản Hiên Trạng QH đc . Tất nhiên chìa khóa thì em mong "mấy thằng tình địch" của em nố ko vô đây đọc để mà biết :D

Hay bác viết 1 Lisp về lênh Lock khác lệnh LockLayer cơ bản theo em là thực tế nhất . Đoạn code em gửi ở trên em thấy làm đc điều tương tự

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
Tue_NV    3.841

Chài Premetric rơi đúng vùng chưa biết của em , em sẽ voc nó nhiều hơn vì thấy cái này có nhiều ứng dụng quá,

Nhưng vấn đề là mới vọc 5p đã khóa và mở khóa ngon lành ==> khóa này chưa chắc , ai biêt về Premetric sẽ mở ngon lành

Mà khóa kiểu này xem ra mất công sức quá thậm chí ko khả thi nếu phải làm với 1 hàng trăm đối tượng

Nếu bác Tue_NV viết đc 1 Lisp làm sao để cho chon nhiều đối tượng và tự động nhận dạng đối tượng & cũng tự động chon điểm khóa hết lại thì may ra mới đưa vô thưc tế để khóa bản Hiên Trạng QH đc . Tất nhiên chìa khóa thì em mong "mấy thằng tình địch" của em nố ko vô đây đọc để mà biết :D

Hay bác viết 1 Lisp về lênh Lock khác lệnh LockLayer cơ bản theo em là thực tế nhất . Đoạn code em gửi ở trên em thấy làm đc điều tương tự

Bạn có thể dùng cách này

Block bản vẽ Hiên Trạng QH thành 1 Block duy nhất và Khoá cái Block đó là xong

 

Lưu ý: Cách khoá này là để đề phòng người khác vô tình move,stretch..... đối tượng thôi nghe bạn.

  • 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
Tue_NV    3.841

Nó kg có tác dụng với cad2008 trở xuống thì phải

Chào bác TrungNgaMy

CAD2012 có tính năng này, CAD2008 trở xuống thì không có. Không biết CAD2009 -> CAD2011 có hay không?

Tue_NV thường dùng tính năng này để khoá đối tượng, đề phòng mình lỡ tay move,stretch... nhầm đối tượng đó

Và còn 1 số tính năng rất hay trong Parametric nữa bá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
ketxu    2.649

Lisp thì phải load vào mới có tác dụng. File đó luôn luôn được load lisp của 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
tuoichuot84    5

Chào bác TrungNgaMy

CAD2012 có tính năng này, CAD2008 trở xuống thì không có. Không biết CAD2009 -> CAD2011 có hay không?

Tue_NV thường dùng tính năng này để khoá đối tượng, đề phòng mình lỡ tay move,stretch... nhầm đối tượng đó

Và còn 1 số tính năng rất hay trong Parametric nữa bác ạ.

E dùng Cad2010, cũng có cái Parametric bác ah!

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
Tue_NV    3.841

Em xin Lisp dùng chống lại 1nhóm lệnh nào đó .( em ko muốn dùng khóa Lock Layer vì sẽ khóa cả Layer mà trong Layer bị khóa có nhiều đối tượng vẫn muốn thao tác )

VD : Em xin Lisp chống lại 1 nhóm lệnh Move-Rotate-Scale-ALign-Stretch . Lisp sẽ làm các đối tượng đc chọn ko thể bị các lệnh trên làm thay đổi

Ứng dụng : như ko cho ng khác cố tình hay vô tình move các điểm mốc quan trọng trong cái File Mặt Bằng Hiện Trạng của Quy Hoạch .

.......

Câu trả lời của Tue_NV thỏa mãn yêu cầu và ứng dụng bạn đặt ra rồi nhé!

Chài Premetric rơi đúng vùng chưa biết của em , em sẽ voc nó nhiều hơn vì thấy cái này có nhiều ứng dụng quá,

.......

Hay bác viết 1 Lisp về lênh Lock khác lệnh LockLayer cơ bản theo em là thực tế nhất . Đoạn code em gửi ở trên em thấy làm đc điều tương tự

CAD có cung cấp mã dxf 60 : Hiện ẩn đối tượng (thuộc tính Visible)

Chưa cung cấp mã dxf để quy định việc khóa, mở khóa đối tượng

Và điều tương tự không làm được vì mình là người sử dụng. Muốn điều tương tự xảy ra thì bạn đi hỏi Nhà sản xuất ấy :unsure:

  • 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
NTD    11

Câu trả lời của Tue_NV thỏa mãn yêu cầu và ứng dụng bạn đặt ra rồi nhé!

 

CAD có cung cấp mã dxf 60 : Hiện ẩn đối tượng (thuộc tính Visible)

Chưa cung cấp mã dxf để quy định việc khóa, mở khóa đối tượng

Và điều tương tự không làm được vì mình là người sử dụng. Muốn điều tương tự xảy ra thì bạn đi hỏi Nhà sản xuất ấy :unsure:

 

Ừ thì thôi ko khóa đc ng biết về Parametric & ng sủ dụng CAD đời thấp hơn thì dùng để khóa ....chính bản thân mình cũng đc , chống lại việc vô tình cầu thả của bản thân cũng tốt rồi . Mong sao mấy thằng cu ở cty nó đếch biết cái topic này vì nó đã biết Parametric đâu lại còn xài CAD2012 nữa , yên tâm rồi , keke :D

Cảm ơn bác Tue !

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  

×