Đến nội dung


Hình ảnh
- - - - -

[hỏi] thực hiện lệnh Lisp khi double click vào block


  • Please log in to reply
8 replies to this topic

#1 khatamxd

khatamxd

    biết vẽ ellipse

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

Đã gửi 27 December 2012 - 01:49 PM

Chào mọi người!
Hiện nay để thực thi 1 defun thì mình thường phải đánh tên defun đó rồi enter. Điều này gây mất thời gian.
Mình tham khảo 1 chương trình viết bằng lisp thấy họ chỉ cần double click vào 1 block thì nó sẽ xuất hiện 1 form do họ định nghĩa. Như vậy, có lẽ khi double click vào block đó thì cad thì sẽ tự động chạy 1 defun nào đó do họ định nghĩa.
Do file lisp đã được mã hóa dạng vlx nên mình ko tham khảo được code.
Bạn nào biết thì có thể giúp mình thực hiện điều này được ko?
Xin chân thành cảm ơn,
  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 27 December 2012 - 02:05 PM

Chào mọi người!
Hiện nay để thực thi 1 defun thì mình thường phải đánh tên defun đó rồi enter. Điều này gây mất thời gian.
Mình tham khảo 1 chương trình viết bằng lisp thấy họ chỉ cần double click vào 1 block thì nó sẽ xuất hiện 1 form do họ định nghĩa. Như vậy, có lẽ khi double click vào block đó thì cad thì sẽ tự động chạy 1 defun nào đó do họ định nghĩa.
Do file lisp đã được mã hóa dạng vlx nên mình ko tham khảo được code.
Bạn nào biết thì có thể giúp mình thực hiện điều này được ko?
Xin chân thành cảm ơn,

Tức là double click vào block A thì lệnh X được thực hiện, block B thì lệnh Y được thực hiện...? Block này nằm trên bản vẽ hay block nằm trên dialoge?
  • 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 khatamxd

khatamxd

    biết vẽ ellipse

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

Đã gửi 27 December 2012 - 03:10 PM

Tức là double click vào block A thì lệnh X được thực hiện, block B thì lệnh Y được thực hiện...? Block này nằm trên bản vẽ hay block nằm trên dialoge?

đúng rồi double click vào block nào thì gọi lệnh tương ứng thực hiện. Block nằm trên bản vẽ
Bạn nào có thể dịch ngược được file vlx http://www.cadviet.c...6_pt_detail.rar thì load xuống để xem code (block double click vào chạy lệnh có tên là: TENDPROP)
  • 0

#4 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 27 December 2012 - 03:36 PM

1- Thay đổi lại action Doubleclick (CUI)
2- Reactor với lệnh bedit
  • 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


#5 khatamxd

khatamxd

    biết vẽ ellipse

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

Đã gửi 27 December 2012 - 04:13 PM

Bạn trả lời chưa rõ và hướng dẫn cũng chưa rõ nên khó tìm hiểu.
1). Click vào 1 block có tên bất kỳ hay sao? Nếu là block của chương trình thì phải gởi bản vẽ lên.
2). Tôi chép vlx ở ổ C hoặc D thì khi load đều báo path không hợp lệ, mặc dầu đã add path của C và D vào support?

1. Block có tên bất kỳ hay block của chương trình j cũng ko cần quan tâm. Nói chung giống như bạn nói phía trên đó "Tức là double click vào block A thì lệnh X được thực hiện, block B thì lệnh Y được thực hiện..."
2. ko cài được đâu bạn ui. mình chỉ chép ra 1 file trong đó có chứa lệnh để cad load chứ để sử dụng nó thì phải cài cả chương trình, rồi phải có cả khóa cứng nữa.
  • 0

#6 khatamxd

khatamxd

    biết vẽ ellipse

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

Đã gửi 27 December 2012 - 04:14 PM

1- Thay đổi lại action Doubleclick (CUI)
2- Reactor với lệnh bedit

Nghe có vẽ sắp giải quyết được vấn đề rùi. Anh ketxu có thể hướng dẫn cụ thể thêm tí ko vì thấy chương trình của người ta chỉ cần cài làm thêm động tác load file vlx em gởi phía trên là double click vào cái block đó nó hiện lên cái form để nhập liệu. Chắc chỉ do code thực hiên ko chứ ko có hiệu chỉnh j trong cad
  • 0

#7 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 27 December 2012 - 06:51 PM

Mình k ngôuf ở máy nên k code hẳn hoi đc, n chỉ đơn giản là gọi willcommand reactor thôi. bạn có thể tìm trc trong 4r để biết cách dùng. nếu quen viết vba thì khtam gọi even lệnh bedot th. hi. mà dạo này kata đến đâu r?
  • 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


#8 ThuyLinh313

ThuyLinh313

    biết lệnh mtext

  • Members
  • PipPipPipPip
  • 288 Bài viết
Điểm đánh giá: 142 (tàm tạm)

Đã gửi 27 December 2012 - 09:14 PM

1- Thay đổi lại action Doubleclick (CUI)
2- Reactor với lệnh bedit


Cách nữa: Reactor trực tiếp với sự kiện double click. Đưa hàm (exit) vào cuối hàm callback để bẻ gãy lệnh cad được thực thi bởi việc double click. Phạm vi áp dung sẽ không chỉ với block mà với bất kỳ đối tượng nào, hoặc thậm chí là 1 cú double click vu vơ.

Cadviet có trương trình dịch ngược VLX thật à?
  • 1

#9 khatamxd

khatamxd

    biết vẽ ellipse

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

Đã gửi 03 January 2013 - 02:16 PM

Mình k ngôuf ở máy nên k code hẳn hoi đc, n chỉ đơn giản là gọi willcommand reactor thôi. bạn có thể tìm trc trong 4r để biết cách dùng. nếu quen viết vba thì khtam gọi even lệnh bedot th. hi. mà dạo này kata đến đâu r?


Lo ăn tết quá nên bi h mới vô lại diễn đàn. Cám ơn anh để e tìm hiểu có j ko biết nhờ a giúp thêm
Kata đến chổ e ko biết phát triển j thêm.Hehe...Hiện nay đang share cho ba kon dùng free đó a.

Cadviet có trương trình dịch ngược VLX thật à?


Có mà dấu ko share đâu. Anh Ketxu trên cũng là 1 trong những người có đó. hjhj
  • 0