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

[Yêu cầu] Lisp làm cho grips của đối tượng luôn hiện

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

Các bác cho em hỏi có lisp nào cho 1 đối tượng hiện grips (luôn luôn thế), khi nào mình không muốn thì chọn nó và esc là bình thường lại.

Điều này giúp làm việc với đối tượng trong 1 bản vẽ dày đặc để mình không bắt điểm nhầm ấy (ý em là có thể nhìn thấy những grips trong khi thao tác). Thanks các bác.

Chú thích: Em không có file cad, vì phải có lisp này hoặc cách nào đó mới ra được 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

+ Bạn có thể tham khảo bắt điểm để tránh nhầm lẫn dựa trên thao tác: Giữ Shift + phải chuột ( thao tác này diễn ra khi nào bạn cần bắt điểm). Sau đó bạn chọn tùy theo từng lựa chọn trong bảng hiện ra. Về tác dụng của các lựa chọn trong bảng đó bạn có thể tham khảo ở: http://www.cadviet.com/forum/index.php?showtopic=38

+ Bạn có thể làm hiện các grips số lượng lớn bằng cách đánh lệnh option trong cad -> thẻ selection -> Điền 1 số tương đối lớn vào ô: Object selection limit for display of grips.

+ Yêu cầu của bạn tớ nghĩ là hơi bị BANANA cho các lisper mặc dù tớ cũng ko biết viết lisp, hì.

Chúc bạn vui khi làm việc với acad!

  • 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

Bạn chủ topic có thể tưởng tượng thế này : đối tượng hiện gripsets khi ta pick vào nó.

- Khi bạn đang thực hiện 1 lệnh, nếu giả sử các đối tượng bạn muốn nổi grips đang hiện grips => đồng nghĩa với việc lệnh bạn đang thực hiện sẽ tác động trực tiếp đến đối tượng đang nổi grips :)

- Vấn đề của bạn sử dụng osnap linh hoạt 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

Lisp này làm cho tập hợp chọn nào đó luôn hiện Grip. Nó không ảnh hưởng đến quá trình thao tác bằng các lệnh khác.

Cách sử dụng: dùng lệnh ON để hiện Grip các đối tượng được chọn, dùng lệnh OFF để huỷ hiện Grip. Trong quá trình hiện Grip có thể chọn thêm để cho hiện Grip.

;Doan Van Ha CADViet.com
(defun C:ON( / ssthem)
(princ "\nChon cac doi tuong muon hien Grips...")
(foreach hien (setq ssthem (acet-ss-to-list (ssget)))
 (setq sshien (if sshien (ssadd hien sshien) (acet-list-to-ss ssthem))))
(if sshien (acet-ss-redraw sshien 3)))
(defun C:OFF()
(princ "\nChon cac doi tuong muon hien Grips...")
(if sshien (acet-ss-redraw sshien 4))
(setq sshien nil))

  • 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

Bác ĐVH đang triệt để phát huy ACET à ^^ Chúc bác ngày một gặt hái nhiều ACET hơn để chia sẽ với anh em ^^

Tuy nhiên, đọc code của bác Ketxu nghĩ là bác nhầm giữa Highlight là Select Gripset :)

  • 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

Bác ĐVH đang triệt để phát huy ACET à ^^ Chúc bác ngày một gặt hái nhiều ACET hơn để chia sẽ với anh em ^^

Tuy nhiên, đọc code của bác Ketxu nghĩ là bác nhầm giữa Highlight là Select Gripset :)

Nhầm thiệt chứ còn "em nghĩ" gì nữa! Vậy chứ Select Gripset là cái gì mà tra tự điển khó hiểu quá. Hu,hu,hu!!!

P/S: vì chưa hiểu lắm về mấy thằng vl, vla, vlax nên chơi tạm thằng acet chứ nghe nói thằng này không phải của cad, sợ một ngày kia nó huỷ thì treo niêu các chương trình cũ nữa chớ

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 chủ topic là nó phải có mấy cái chấm xanh xanh ấy ^^.

Cloud08-10-2011-102109AM.gif

 

P/S : nhiều hàm của Express rất là dở hơi, chủ yếu dựa vào Command ^^

E thì cứ túc tắc viết lại dần các hàm của nó, được thằng nào dùng thằng ấy, đỡ phải có câu "Máy bạn nhớ phải cài Express...."

  • 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

Vâng, gripset chính là nó đấy. Các bác giúp em nhé

Em xin bác. Bác quẳng câu hỏi lên 2 tháng rồi, giờ quay lại phán 1 câu xanh rờn mà cũng chả buồn đọc người ta đã nói gì nữa, vậy thì ta lại rung đùi chờ tiếp thôi, 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

Bác thông cảm, lúc đó em nghĩ không làm được nên thôi. Giờ vô tình quay lại thì thấy các bác vẫn thảo luận. Bác nói em không đọc, vậy mà em lại like this bác với bác DOAN VAN HA. Thật là thiệt thòi cho em 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

Bạn đọc lại bài #3, nó có nghĩa là việc bạn yêu cầu sẽ gây ra hàng đống cái bất tiện và khó khả thi (tất nhiên vẫn có thể làm với reactor nhưng không được như mong muố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

Em không hiểu rõ về lisp lắm nên không biết có cách nào không. Bác thử biểu diễn reactor cho em xem được không. Em muốn biết nó thế nào. Thanks 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

Ở đây k liên quan đến lisp, mình đang cố giải thích cho bạn theo góc nhìn hoàn toàn bình thường, n bạn k đọc kỹ thôi :

- Thông thường 1 đối tượng đang hiện Grip tương đương với việc các lệnh bạn thực hiện tiếp theo sẽ tác động đến chính các đối tượng này

Ví dụ khi bạn pick chọn 1 đường tròn + 1 line, grip của Line + đường tròn hiện lên, sau đó sử dụng lệnh Move => lệnh move sẽ tác dụng với đường tròn + line vừa chọn.

(bạn làm CAD chắc hản biết ???).

Lật lại vấn đề của bạn. Bạn muốn có 1 lisp làm cho 1 hoặc 1 số đối tượng nào đó luôn luôn hiện grip trong suốt quá trình thao tác với bản vẽ. Điều này sẽ dẫn đến việc gì ?? Bất cứ lệnh nào bạn đánh, CAD sẽ đều đem các đối tượng bạn đang cho hiện grip trước đó ra để xử.Đến đây là ta rõ vấn đề chưa ?

Còn về Reactor, để biểu diễn e khó bạn ạ :). Ngay cả việc hiện grip khi đang có 1 lệnh thực thi cũng k được chấp nhận ở CAD hay sao đó :) Mình chỉ có thể làm nó hiện trước - sau khi thực hiện - cancel lệnh thôi

Ví dụ : (thực hiện các lệnh tạo đối tượng mới để xem)

(defun c:test ()
(defun hien_grip (a B)(sssetfirst nil #ss))
(defun an_grip (a B)(sssetfirst nil nil))
(or (setq #ss (ssget)))
(hien_grip T T)
(vl-load-com)
(vlr-remove reactor_test )
(setq reactor_test
(vlr-command-reactor nil
'((:vlr-commandCancelled . hien_grip)
(:vlr-commandEnded . hien_grip)
(:vlr-commandWillStart . an_grip)
)
)
)
)

  • 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

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


×