Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
12 replies to this topic

#1 amateurday

amateurday

    biết lệnh break

  • Members
  • PipPipPipPip
  • 228 Bài viết
Điểm đánh giá: 4 (bình thường)

Đã gửi 05 October 2011 - 01:51 PM

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.
  • 0

#2 victor85

victor85

    biết lệnh stretch

  • Members
  • PipPipPip
  • 169 Bài viết
Điểm đánh giá: 10 (tàm tạm)

Đã gửi 05 October 2011 - 05:48 PM

+ 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.c...hp?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!
  • 1

#3 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 05 October 2011 - 11:07 PM

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

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5451 Bài viết
Điểm đánh giá: 2625 (tuyệt vời)

Đã gửi 08 October 2011 - 09:39 AM

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))

  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#5 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 08 October 2011 - 10:05 AM

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 :)
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#6 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5451 Bài viết
Điểm đánh giá: 2625 (tuyệt vời)

Đã gửi 08 October 2011 - 10:12 AM

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ớ
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#7 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 08 October 2011 - 10:24 AM

Ý bạn chủ topic là nó phải có mấy cái chấm xanh xanh ấy ^^.
Hình đã gửi

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...."
  • 2

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#8 amateurday

amateurday

    biết lệnh break

  • Members
  • PipPipPipPip
  • 228 Bài viết
Điểm đánh giá: 4 (bình thường)

Đã gửi 06 December 2011 - 02:27 PM

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

#9 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 06 December 2011 - 02:30 PM

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é :)
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#10 amateurday

amateurday

    biết lệnh break

  • Members
  • PipPipPipPip
  • 228 Bài viết
Điểm đánh giá: 4 (bình thường)

Đã gửi 06 December 2011 - 03:06 PM

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á.
  • 0

#11 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 06 December 2011 - 03:21 PM

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)
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#12 amateurday

amateurday

    biết lệnh break

  • Members
  • PipPipPipPip
  • 228 Bài viết
Điểm đánh giá: 4 (bình thường)

Đã gửi 06 December 2011 - 03:44 PM

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

#13 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 06 December 2011 - 03:49 PM

Ở đâ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)
)
)
)
)

  • 2

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC