Đến nội dung


Hình ảnh
- - - - -

[yêu cầu] xuất block nhanh !


  • Please log in to reply
29 replies to this topic

#1 federera6

federera6

    biết zoom

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

Đã gửi 15 December 2011 - 05:01 PM

Em làm bên kết cấu mới ra trường !
hiện tại có rất nhiều những chi tiết như dấu tích, chỉ dẫn thép, ...
vẽ lại những cái đó cũng mất 1 khoảng thời gian tương đối.
em muốn xin 1 lisp mà khi đặt tên các block tương ứng với các số 1,2,3,4,5 thì chỉ cần gõ lệnh F1,2,3,4,5 thì sẽ ra luôn những block đó mà không cần phải dùng lệnh insert rồi nhập tên block đó.
mong các anh chị trên diễn đàn giúp đỡ cho em !
nhân tiện có anh chị nào có bộ lisp vẽ nhanh các cấu kiện như vẽ nhanh thép sàn, vẽ nhanh lanh tô ... hoặc có những chi tiết hay mà em chưa được biết trong nghề có thể giúp đỡ cho em với !
Em xin chân thành cám ơn và chúc toàn thể các anh chị trên diễn đàn sức khỏe thành đạt và hạnh phúc !
Thân
nếu do sự bảo mật không muốn truyền ra rộng rãi các anh chị có thể gửi vào hòm thư cho em là federera6@yahoo.com
  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 15 December 2011 - 05:06 PM

Em làm bên kết cấu mới ra trường !
hiện tại có rất nhiều những chi tiết như dấu tích, chỉ dẫn thép, ...
vẽ lại những cái đó cũng mất 1 khoảng thời gian tương đối.
em muốn xin 1 lisp mà khi đặt tên các block tương ứng với các số 1,2,3,4,5 thì chỉ cần gõ lệnh F1,2,3,4,5 thì sẽ ra luôn những block đó mà không cần phải dùng lệnh insert rồi nhập tên block đó.
mong các anh chị trên diễn đàn giúp đỡ cho em !
nhân tiện có anh chị nào có bộ lisp vẽ nhanh các cấu kiện như vẽ nhanh thép sàn, vẽ nhanh lanh tô ... hoặc có những chi tiết hay mà em chưa được biết trong nghề có thể giúp đỡ cho em với !
Em xin chân thành cám ơn và chúc toàn thể các anh chị trên diễn đàn sức khỏe thành đạt và hạnh phúc !
Thân
nếu do sự bảo mật không muốn truyền ra rộng rãi các anh chị có thể gửi vào hòm thư cho em là federera6@yahoo.com


1). Ai biết Block của bạn có những tên gì mà viết sẵn. Chí ít thì cũng phải nhập 1 lần chứ?
2). Trên CadViet có nhiều lisp vẽ sàn, dầm, cầu thang... Bạn chịu khó tìm. Hơn nữa mỗi nhu cầu lại cần 1 lisp khác nhau bạn ạ.
  • 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.


#3 federera6

federera6

    biết zoom

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

Đã gửi 15 December 2011 - 05:15 PM

ý của em chỉ cần có block tên là 1 thì mình dùng lệnh F1 gọi được block tên là 1 đó ra ngay mà ko cần phải dùng lệnh I rồi chọn tên block. Cấu trúc của tên lệnh là F"tên của block cần gọi nhanh" .
  • 0

#4 Detailing

Detailing

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 667 Bài viết
Điểm đánh giá: 278 (khá)

Đã gửi 15 December 2011 - 05:26 PM

nếu do sự bảo mật không muốn truyền ra rộng rãi các anh chị có thể gửi vào hòm thư cho em là federera6@yahoo.com

Do sự bảo mật nên ko thể gửi cho bạn được. :D
  • 1

Ideas don't matter, execution does!

1908412_308002392716743_8165279281236341


#5 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 16 December 2011 - 11:49 AM

ý của em chỉ cần có block tên là 1 thì mình dùng lệnh F1 gọi được block tên là 1 đó ra ngay mà ko cần phải dùng lệnh I rồi chọn tên block. Cấu trúc của tên lệnh là F"tên của block cần gọi nhanh" .

theo mình thì yêu cầu của bạn có lẽ ko phải là lisp, mà là đặt phím tắt F1 Cho lệnh insert block có tên là 1 có sẵn?
cái này thì phải biết cơ bản một chút về menu, tạo lệnh mới và đặt phím tắt
Theo hình của mình thì:
1) trước tiên vào customize nhấp vào biểu tượng new command
2)đặt tên lệnh là Block1
3)nhập đoạn code sau bào ô macro ^C^C-insert 1 \ 1 0
4)nắm lệnh Block1 (ở chỗ mình đánh số 2) kéo thả vào Shorcut key để tạo phím tắt
5) tại ô key nhấn phím F1
Apply rồi đóng lại, nhấn thử F1 xem thế nào?
chú ý là trong bản vẽ phải có sẵn block 1 như bạn nói nhé!

Hình đã gửi
P/S Mọi thứ trên diễn đàn là Free và công khai nha bạn, các bác ở trên trêu bạn chút thôi. Chứ muốn bảo mật thì ko ai vào CadViet làm gì nhỉ!
  • 0
Hình đã gửi

#6 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 16 December 2011 - 12:07 PM

theo mình thì yêu cầu của bạn có lẽ ko phải là lisp, mà là đặt phím tắt F1 Cho lệnh insert block có tên là 1 có sẵn?
cái này thì phải biết cơ bản một chút về menu, tạo lệnh mới và đặt phím tắt
Theo hình của mình thì:
1) trước tiên vào customize nhấp vào biểu tượng new command
2)đặt tên lệnh là Block1
3)nhập đoạn code sau bào ô macro ^C^C-insert 1 \ 1 0
4)nắm lệnh Block1 (ở chỗ mình đánh số 2) kéo thả vào Shorcut key để tạo phím tắt
5) tại ô key nhấn phím F1
Apply rồi đóng lại, nhấn thử F1 xem thế nào?
chú ý là trong bản vẽ phải có sẵn block 1 như bạn nói nhé!

P/S Mọi thứ trên diễn đàn là Free và công khai nha bạn, các bác ở trên trêu bạn chút thôi. Chứ muốn bảo mật thì ko ai vào CadViet làm gì nhỉ!

Hề hề hề, cho mình ké ý kiến của bác lp-hai nhé
Nếu như chắc chắn rằng cái block mang tên 1 đã có trên bản vẽ thì bạn chủ thớt có thể chơi thử thằng cu này xem có đúng ý bạn không nhé. Nếu sai thì bạn phải tìm cách khác, còn nếu đúng thì bạn cứ thế mà phát huy với các block bạn muốn


(defun c:f1 ()
(defun ins ()
(command "insert" "1" (getpoint "\n Chon diem nhap") 1 "" 0) )
(ins)
(while (= (strcase (setq ans (getstring "\n Ban muon tiep tuc <y or n> : "))) "Y")
(ins)
)
(princ)
)

Lưu ý rằng code lisp này đượic bảo mật ở cấp không không thấy nên bạn hãy dè chừng khi sử dụng kẻo mà nó không được như ý bạn muốn đâu.
Hề hề hề,
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#7 Chiron

Chiron

    biết dimradius

  • Members
  • PipPipPipPipPip
  • 310 Bài viết
Điểm đánh giá: 90 (tàm tạm)

Đã gửi 16 December 2011 - 12:42 PM

Hề hề hề, cho mình ké ý kiến của bác lp-hai nhé
Nếu như chắc chắn rằng cái block mang tên 1 đã có trên bản vẽ thì bạn chủ thớt có thể chơi thử thằng cu này xem có đúng ý bạn không nhé. Nếu sai thì bạn phải tìm cách khác, còn nếu đúng thì bạn cứ thế mà phát huy với các block bạn muốn



(defun c:f1 ()
(defun ins ()
(command "insert" "1" (getpoint "\n Chon diem nhap") 1 "" 0) )
(ins)
(while (= (strcase (setq ans (getstring "\n Ban muon tiep tuc <y or n> : "))) "Y")
(ins)
)
(princ)
)

Lưu ý rằng code lisp này đượic bảo mật ở cấp không không thấy nên bạn hãy dè chừng khi sử dụng kẻo mà nó không được như ý bạn muốn đâu.
Hề hề hề,

Hôm qua Chiron định học đòi viết thử 1 đoạn code lisp đơn giản giúp bạn í, nhưng vì Chiron thấy bạn í muốn mông lung quá. Giả sử federera6 có vài block tên 2, 3, 4... thì mình phải viết thêm vài code nữa sao? Lệnh cũng là tên hàm mà, đâu có tích hợp mấy tên block vô tên hàm được phải không bác PTB?
  • 0

#8 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 16 December 2011 - 01:28 PM

Hề hề hề, cho mình ké ý kiến của bác lp-hai nhé
Nếu như chắc chắn rằng cái block mang tên 1 đã có trên bản vẽ thì bạn chủ thớt có thể chơi thử thằng cu này xem có đúng ý bạn không nhé. Nếu sai thì bạn phải tìm cách khác, còn nếu đúng thì bạn cứ thế mà phát huy với các block bạn muốn



(defun c:f1 ()
(defun ins ()
(command "insert" "1" (getpoint "\n Chon diem nhap") 1 "" 0) )
(ins)
(while (= (strcase (setq ans (getstring "\n Ban muon tiep tuc <y or n> : "))) "Y")
(ins)
)
(princ)
)

Lưu ý rằng code lisp này đượic bảo mật ở cấp không không thấy nên bạn hãy dè chừng khi sử dụng kẻo mà nó không được như ý bạn muốn đâu.
Hề hề hề,

hheheh, cái vụ dùng lisp thì có lẽ lisp của bác Bình chưa tối ưu lắm!! :) vì thứ nhất chủ thớt yêu cầu khi nhấn "phím F1" chứ ko phải gõ lệnh f1 rồi enter. Thứ 2 là dù làm theo của em hay của bác cũng ko good lắm vì theo biết trên diễn đàn có cái vụ gì đấy mà mình ko cần tạo nhiều cái denfun c:f1 rồi defun c:f2 như vậy đâu, mà chỉ cần bác viết 1 code thôi nó tự hiểu mình gõ lệnh f1 là Insert thằng Block 1, f2 là lệnh insert thằng Block 2 ..... cứ thế em quên mất gọi là gì rồi :)
  • 0
Hình đã gửi

#9 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 16 December 2011 - 02:33 PM

hheheh, cái vụ dùng lisp thì có lẽ lisp của bác Bình chưa tối ưu lắm!! :) vì thứ nhất chủ thớt yêu cầu khi nhấn "phím F1" chứ ko phải gõ lệnh f1 rồi enter. Thứ 2 là dù làm theo của em hay của bác cũng ko good lắm vì theo biết trên diễn đàn có cái vụ gì đấy mà mình ko cần tạo nhiều cái denfun c:f1 rồi defun c:f2 như vậy đâu, mà chỉ cần bác viết 1 code thôi nó tự hiểu mình gõ lệnh f1 là Insert thằng Block 1, f2 là lệnh insert thằng Block 2 ..... cứ thế em quên mất gọi là gì rồi :)

Gọi là Reactor. Và yêu cầu của OP chính xác là gõ lệnh "F1", "F2" chứ k phải là phím tắt (chứ k thì đến Block 13 thì tịt à ^^)
Cái này ở topic Reactor và ứng dụng của nó Ketxu có viết ví dụ mẫu rồi, thay đổi thành Vla-insert là được . Bác Bình hay lp_hai thử xem có hợp yêu cầu k ?
  • 3

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 Tri

Tri

    biết vẽ circle

  • Members
  • PipPip
  • 31 Bài viết
Điểm đánh giá: 24 (tàm tạm)

Đã gửi 16 December 2011 - 02:56 PM


P/S Mọi thứ trên diễn đàn là Free và công khai nha bạn, các bác ở trên trêu bạn chút thôi. Chứ muốn bảo mật thì ko ai vào CadViet làm gì nhỉ!

Mình thì thấy có thứ trên diễn đàn không công khai đấy chứ? :D
Toàn là những thứ mang đầy tâm huyết và công sức lao động không à!!!
  • 0

#11 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 16 December 2011 - 03:13 PM

Gọi là Reactor. Và yêu cầu của OP chính xác là gõ lệnh "F1", "F2" chứ k phải là phím tắt (chứ k thì đến Block 13 thì tịt à ^^)
Cái này ở topic Reactor và ứng dụng của nó Ketxu có viết ví dụ mẫu rồi, thay đổi thành Vla-insert là được . Bác Bình hay lp_hai thử xem có hợp yêu cầu k ?

thế đấy! Tại dạo này cv hơi ít, tối ngày em hết đọc báo rồi chat chit nên hoa cả mắt, nhìn gà hóa cuốc hic.
sr bác Bình. hehhehe
  • 1
Hình đã gửi

#12 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 16 December 2011 - 03:27 PM


;@ketxu
(vl-load-com)
(if (null chenBlock)
(setq chenBlock (vlr-command-reactor nil '((:vlr-unknownCommand . ChenBlock)))))
;;*********************************************************************
(defun ChenBlock (calling-reactor endcommandInfo)
(cond ((= (substr (setq info (strcase (car endcommandInfo)) )1 1) "F")
(cond ((tblsearch "BLOCK" (substr info 2))
(vla-InsertBlock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
(vlax-3d-point (getpoint "\nInsertion Point :"))
(substr info 2)
1
1
1
0
)
)
(T (alert (strcat "\nKhong co Block nao ten : " (substr info 2))))
)
)
)
)

  • 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


#13 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 16 December 2011 - 04:38 PM

Gọi là Reactor. Và yêu cầu của OP chính xác là gõ lệnh "F1", "F2" chứ k phải là phím tắt (chứ k thì đến Block 13 thì tịt à ^^)
Cái này ở topic Reactor và ứng dụng của nó Ketxu có viết ví dụ mẫu rồi, thay đổi thành Vla-insert là được . Bác Bình hay lp_hai thử xem có hợp yêu cầu k ?

Hề hề hề,
Cam ơn bác ketxu đã chỉ bảo. Thực tế cái món reactor này mình chưa thủng. Cũng có đọc cái bài post của bác về việc đổi màu, nhưng chưa dám mò mẫm vào sợ lạc lối. Nay bác đã khuyến cáo, để mình chút thời gian lần mò thử xem có tìm được lối đi không. nếu chưa được sẽ xin bác chỉ lối sau nhé. Đừng để mình lạc trong đó rồi quên đường về .... cadviet hỉ????
Chúc bác khỏe và vui.

Hề hề hề,
Nhờ bác ketxu chỉ giùm lỗi trong cái đoạn mình ăn trộm của bác nhé:


(vl-load-com)
(if (null InsBlk)
(setq InsBlk (vlr-command-reactor nil '((:vlr-unknownCommand . call_back)))))
;;*********************************************************************
(defun call_back (calling-reactor comstrl )
(setq First_Key (strcase (substr (nth 0 comstrl) 1 1))
End_key (substr (nth 0 comstrl) 2) )
(if (and (= First_Key "F") ;;;;; (= (strlen (rtos (atof End_key) 2 0)) (strlen End_key))
)
(addblk)
(princ "\nChua co lenh nao nhu the nay\n")
)
)
;;*********************************************************************
(defun addblk ( )
;;;;(setq bln End_key) ;;;;;;; ss (ssget) )
(if (tblsearch "block" End_key)
(vla-InsertBlock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
(vlax-3d-point (getpoint "\nInsertion Point :"))
End_key 1 1 1 0)
(princ "\n Unknown the block's name \n")
)
)
Thực ra thì nó cũng chạy bon ra phết xong cái lúc dừng lại nó lại cứ xóc một phát nên hơi tức bụng bác ạ. Hề hề hề. Mò hoài chửa biết tại sao nên post lên hỏi bác cho nó chắc.... Hề hề hề, cái món reactor này vậy mà khó xơi ra phết bác ạ.

Bài viết đã được chỉnh sửa nội dung bởi phamthanhbinh: 16 December 2011 - 07:28 PM
Bổ sung tí code

  • 3
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#14 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 16 December 2011 - 08:57 PM

K hiểu sao e đang cặm cụi chép code của bác Bình r ấn F5 thì thấy bài của bác đâu mất tiêu >"< Bác Bình tí chịu khó pót lại code nhé :(
E đoán có lẽ cái phát xóc ruột bác nói là thông báo Unknown command : cái này là thông báo chuẩn của CAD bác ạ ^^ Mình đang xài ké anh UnknownCommand, (chặn tình huống các lệnh F1-> Fn do ta chưa định nghĩa), nên đành sống chung với lũ ^^
  • 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


#15 federera6

federera6

    biết zoom

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

Đã gửi 16 December 2011 - 09:10 PM

em ngồi chơi xơi nước 3 4 tháng nay , mấy hôm vừa rồi đựoc giao việc đầu tiên làm như điên cho bõ công lần đầu tiên được tiếp xúc với công việc, đã thế hôm nay mạng megavnn chập chờn từ công ty về đến nhà, vào được cadviet cả 20 phút đồng hồ , đọc đc những reply của các anh lp_hai, phanthanhbinh, voi anh ketxu em mừng chắc hết cả tối nay :D mặc dù em chưa thử nhưng em rất được cảm ơn đến những sự giúp đỡ quý báu đó.
p/s : mạng lởm quá nên em viết xong được những dòng này gửi đi cũng phải hết thêm gần 20 phút nữa hix.
  • 0

#16 Chiron

Chiron

    biết dimradius

  • Members
  • PipPipPipPipPip
  • 310 Bài viết
Điểm đánh giá: 90 (tàm tạm)

Đã gửi 17 December 2011 - 08:49 AM

Gọi là Reactor. Và yêu cầu của OP chính xác là gõ lệnh "F1", "F2" chứ k phải là phím tắt (chứ k thì đến Block 13 thì tịt à ^^)
Cái này ở topic Reactor và ứng dụng của nó Ketxu có viết ví dụ mẫu rồi, thay đổi thành Vla-insert là được . Bác Bình hay lp_hai thử xem có hợp yêu cầu k ?


Hề hề hề,
Cam ơn bác ketxu đã chỉ bảo. Thực tế cái món reactor này mình chưa thủng. Cũng có đọc cái bài post của bác về việc đổi màu, nhưng chưa dám mò mẫm vào sợ lạc lối. Nay bác đã khuyến cáo, để mình chút thời gian lần mò thử xem có tìm được lối đi không. nếu chưa được sẽ xin bác chỉ lối sau nhé. Đừng để mình lạc trong đó rồi quên đường về .... cadviet hỉ????
Chúc bác khỏe và vui.

Hề hề hề,
Nhờ bác ketxu chỉ giùm lỗi trong cái đoạn mình ăn trộm của bác nhé:
...
Thực ra thì nó cũng chạy bon ra phết xong cái lúc dừng lại nó lại cứ xóc một phát nên hơi tức bụng bác ạ. Hề hề hề. Mò hoài chửa biết tại sao nên post lên hỏi bác cho nó chắc.... Hề hề hề, cái món reactor này vậy mà khó xơi ra phết bác ạ.

Đúng là có quá nhiều thứ để học hỏi, không ngờ cái lệnh tên thay đổi mà cũng làm được... Nhờ các bác mà em được mở rộng tầm mắt. Đáng học hỏi, đáng khâm phục!!!
  • 0

#17 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 17 December 2011 - 09:16 AM

K hiểu sao e đang cặm cụi chép code của bác Bình r ấn F5 thì thấy bài của bác đâu mất tiêu >"< Bác Bình tí chịu khó pót lại code nhé :(
E đoán có lẽ cái phát xóc ruột bác nói là thông báo Unknown command : cái này là thông báo chuẩn của CAD bác ạ ^^ Mình đang xài ké anh UnknownCommand, (chặn tình huống các lệnh F1-> Fn do ta chưa định nghĩa), nên đành sống chung với lũ ^^

Hề hề hề,
Nó đây bác ạ: Unknown command "
". Press F1 for help.
Mình tìm hoài mà chửa biết cái "" này ở đâu chui vào bác ạ. Phải chăng là nó từ cái thằng '((:vlr-unknownCommand . call_back)) hử bác????
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#18 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 17 December 2011 - 10:56 AM

Mình tìm hoài mà chửa biết cái "" này ở đâu chui vào bác ạ. Phải chăng là nó từ cái thằng '((:vlr-unknownCommand . call_back)) hử bác????

Vâng. Chính xác là mình chặn thông điệp của CAD(cái này ngày xưa gọi là hook nè)
Nôm na với :vlr-unknownCommand :
Khi ta đánh 1 lệnh CAD k biết (event), CAD Editor sẽ gửi thông điệp "Tôi k biết" đến trung tâm xử lý và CAD trả ra Editor thông báo Unknown command.Sau khi ta đăng ký reactor này, CAD Editor sẽ nhảy vào họng ông thông điệp để làm theo ý mình trước (ở đây là các hàm xử lý), sau đó mới thả ông thông điệp đi.
THành ra sau khi xử lý xong hàm của mình r, CAD mới nhận được cái "Tôi k biết" và trả ra thông báo UnknownCommand.
Có thể có cách xử lý, ví dụ như popup menu có thể bị chặn hẳn bởi hàm Alert (chưa thử trong trường hợp này), n e thấy k ảnh hưởng tới nhu cầu nên cũng k tìm hiểu (mà giả sử có cho cái Alert ra thì cũng khó chịu k kém)
  • 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


#19 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 17 December 2011 - 11:37 AM

Vâng. Chính xác là mình chặn thông điệp của CAD(cái này ngày xưa gọi là hook nè)
Nôm na với :vlr-unknownCommand :
Khi ta đánh 1 lệnh CAD k biết (event), CAD Editor sẽ gửi thông điệp "Tôi k biết" đến trung tâm xử lý và CAD trả ra Editor thông báo Unknown command.Sau khi ta đăng ký reactor này, CAD Editor sẽ nhảy vào họng ông thông điệp để làm theo ý mình trước (ở đây là các hàm xử lý), sau đó mới thả ông thông điệp đi.
THành ra sau khi xử lý xong hàm của mình r, CAD mới nhận được cái "Tôi k biết" và trả ra thông báo UnknownCommand.
Có thể có cách xử lý, ví dụ như popup menu có thể bị chặn hẳn bởi hàm Alert (chưa thử trong trường hợp này), n e thấy k ảnh hưởng tới nhu cầu nên cũng k tìm hiểu (mà giả sử có cho cái Alert ra thì cũng khó chịu k kém)

Hề hề hề,
Vậy là gỡ được một cái xương. Còn một vấn đề nữa mà minh thấy nó hơi khác khi dùng các lisp khác là:
Khi mình load cả cái reactor của bác Ketxu và cái reactor mình thử viết thì bất kể load cai nào trước cái nào sau, kết quả chạy lisp vẫn tòi ra đấy đủ các thông báo lỗi của cả hai lisp.
Như vậy phải chăng cái thằng reactor này sẽ kiểm soát luôn tất cả các reactor khác đã được load, và cứ có evnet là các reactor được load đều nhảy vào chơi chung. (Với các lisp khác thì khi load thằng nào sau, thằng ấy sẽ chi phối lệnh thực hiện cho dù có trùng lệnh với các lisp trước)
Điều này tuy chả chết thằng cu lisp nào nhưng thấy nó cứ kỳ kỳ bác ạ, không giống với cái mình đã biết.
Hề hề hề,
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#20 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 17 December 2011 - 11:44 AM

Chính xác bác ạ. Truyền thống của cái này là xài chung ^^ Thậm chí nếu bác không vlr-remove cái cũ đi thì cả 2 thằng còn cùng làm việc (trong ví dụ trên e k làm việc này) . 1 VLR có thể chứa nhiều action cùng loại trong đó ^^ (chỗ '((:vlr-unknownCommand . call_back))) có thể gán nhiểu em, mỗi e là 1 dotted pair list như vậy)
  • 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