Đến nội dung


Hình ảnh
- - - - -

[Giới thiệu] Lisp tạo hộp thoại.


  • Please log in to reply
11 replies to this topic

#1 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 12 July 2012 - 02:51 PM

-Vốn là người hay dùng hộp thoại để gọi danh sách lệnh lisp do mình tự viết nên việc tạo các hộp thoại chứa 1 lô xích sông nút gọi là việc làm thường xuyên, đồng thời mình liên tục có lisp vần bổ sung thêm nút vào hộp thoại mổi lần thế thì phải sửa lại file dcl và lisp hơi vất tí.
-Nay mình vận dụng chút kiến thức về đọc, ghi file lập ra 1 nhóm hàm phục vụ cho viết gán, gọi hộp thoại cho bản thân thấy thành công nên chia sẽ cho mọi người.
-Thời điểm này mình mới hổ trợ được viết text, tạo nút và gán hàm gọi lệnh, ô nhập text, sắp xếp theo hàng, theo cột, image, còn các thứ khác như list ... thì chưa, mình sẽ dần dần nghiên cứu bổ sung cho hoàn thiện.
-Cái lợi ích là chỉ cần thêm 1 dòng ta sẽ có 1 nút mới và tích hợp trong lisp không cần ngó ngàng tới dcl nửa. (mình có tạo 1 file dcl và 2 file lsp trung gian trong ổ D nhưng mình nghỉ ko ảnh hưởng gì đến hòa bính thế giới).
-Các hàm hiện đã xong và chạy ổn:

1. duy:vht_modau
Tác dụng: bắt đấu 1 hộp thoại.
Cú pháp: (duy:vht_modau “tieu de”)
Trong đó “tieu de” do bạn nhập vào và hiển thị phía trên hộp thoại

2. duy:vht_ketthuc
Tác dụng : kết thúc 1 hộp thoại bao gồm 1 nút thoát và 1 dòng giới thiệu tác giả
Cú pháp: (duy:vht_ketthuc “ten nut” “tacgia”)
Trong đó “ten nut” do bạn nhập vào và hiển thị trên nút thoát. “tac gia” do bạn nhập vào và hiển thị là 1 text nằm phía trên nút thoát.

3. duy:vht_nutthoat
Tác dụng: tạo 1 nút tác dụng thoát hộp thoại
Cú pháp: (duy:vht_nutthoat “ten nut”)
Trong đó “ten nut” do bạn nhập vào và hiển thị trên nút thoát

4. duy:vht_ketthuckhongnut
Tác dụng: dùng kết thúc 1 hộp thoại mà ko kèm theo nút thoát
Cú pháp: (duy:vht_ketthuckhongnut “tac gia”)
Trong đó “tac gia” do bạn nhập vào và hiển thị là 1 text nằm phía dưới cùng hộp thoại.

5. duy:vht_dongtext
Tác dụng: dùng viết 1 dòng text canh lề trái lên hộp thoại
Cú pháp: (duy:vht_dongtext “noi dung”)
Trong đó “nội dung” do bạn nhập vào và hiển thị trên hộp thoại

6. duy:vht_dongtextg
Tác dụng: dùng viết 1 dòng text canh lề giữa lên hộp thoại
Cú pháp: (duy:vht_dongtextg “noi dung”)
Trong đó “nội dung” do bạn nhập vào và hiển thị trên hộp thoại

7. duy:vht_nut
Tác dụng: tạo 1 nút gọi lệnh lisp trên hộp thoại (lưu ý là gọi lệnh bạn nhé)
Cú pháp: (duy:vht_nut “ten nut” “ten lenh” “do rong”)
Trong đó “ten nut” do bạn nhập vào và hiển thị trên nút , “ten lenh” do bạn nhập khi nhấn vào nút thì thoát hộp thoại và thực hiện hàm này. “do rong” do mình nhập vào tương ứng giá trị whit khi thết kế hộp thoại mình ko thấy tác dụng cái này rỏ lắm nhưng cứ chuẩn bị cho nó đủ thông số cấu tạo.

8. duy:vht_viettext
Tác dụng: tạo 1 ô cho phép bạn nhập text. Và nhận giá trị nhập cho biến “gia tri” cho phép chỉ định giá trị mặc định nếu chưa tồn tại.
Cú pháp: (duy:vht_viettext “tieu de” “gia tri” “mac dinh” “do rong”)

9. duy:vht_modauhang
Tác dụng: sắp xếp các thứ sau nó thành hàng.

10. duy:vht_modaucot
Tác dụng: sắp xếp các thứ sau nó thành cột.

11. duy:vht_modauhangbao
Tác dụng: sắp xếp các thứ sau nó thành hàng nằm trong 1 hình chử nhật.
Cú pháp (duy:vht_hangbang “tieu de”)
Trong đó tieu đề do bạn nhập vào và hiển thị phía trên bên phải hình chử nhật, nếu ko muốn hiển thị gì thì nhập “”.

12. duy:vht_modaucotbao
Tác dụng: sắp xếp các thứ sau nó thành cột nằm trong 1 hình chử nhật.
Cú pháp (duy:vht_cotbang “tieu de”)
Trong đó tieu đề do bạn nhập vào và hiển thị phía trên bên phải hình chử nhật, nếu ko muốn hiển thị gì thì nhập “”.

13. duy:vht_ketthuccothang
Tác dụng: kết thúc cột hoặc hàng tạo bằng 4 hàm phía trên

14. duy:vht_image
Tác dụng hiển thị 1 ảnh sld có sẳn.
Cú pháp: (duy:vht_anh “tieu de” “do rong” “do cao” “maunen” “duong dan” )
Trong đó: tieu de do bạn nhập vào gì cũng được miển trong 1 hộp thoại đừng có trùng nhau. Do rong là độ rộng của ảnh. Do cao là độ cao của ảnh. Duong dan là đường dẩn đầy đủ có cả .sld của ảnh. Mau nen là màu nến của ảnh (nếu muốn giống i màu hộp thoại thì nhập “-15”.

14. duy:vht_imagev
Tác dụng giống bên trên nhưng ko phải nhập dường dẩn mà là tên 1 ký hiệu mình chuẩn bị sắn (cái này vẽ vector trực tiếp) 10 ký hiệu . Bạn gỏ lệnh GTKH để xem hình và tên dùng gọi hình này.
Cú pháp: giống bên trên nhung thay “duong dan” bằng “kyhieu”
Hình đã gửi

15. duy:vht_goihopthoai
Tác dụng: hoàn tất quá trình tạo gán và gọi hộp thoại.

*Ở đây mình làm file tạo hộp thoại riêng và file vẽ ký hiệu riêng nếu bạn nào ko dùng ký hiệu có sẳn thì ko cần load file ký hiệu cho nặng máy.

*Them 1 ứng dụng ăn non cho cái này là hàm tạo bảng thông báo với các ký hiệu kèm theo.
Cú pháp: (duy:vht_goithongbao “tieu de” “noi dung” “ky hieu” “do rong” “tacgia”)

Ví dụ:
(duy:vht_goithongbao “Chao ban” “Cam on ban a quan tam den chu de” “dau!” “4” “---Duy782006---”)
Thì ra như sau:
Hình đã gửi


http://www.4shared.c...tduy782006.html
http://www.4shared.c...6Ax/kyhieu.html
  • 4

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#2 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 12 July 2012 - 04:18 PM

Nhân tiện thọ giáo các bác 1 vấn đề (tất nhiên vì nó có liên quan đến ứng dụng này):
-Lisp có cách nào đọc được màu tại 1 điểm chỉ định trên màn hình hay không dù là tại điểm này có đối tượng hay không có đối tượng giống như nhìn mắt thường ấy cứ thấy xanh thì bảo xanh mà đen thì bảo đen.

Diển giải 1 tí để các bác khỏi đoán, khuyên ...
Vốn mình đang xây dựng đoạn đọc các đối tượng cad và chuyển thành vector. Hiện nay đã được:
1.Line đọc màu điểm đầu, điểm cuối. (vẽ vector theo thông số này)
2.Point đọc tọa độ, màu.
3.Circle đọc màu và biểu diển bằng 360 point rải theo circle (Dùng góc từ xác định từ tâm và bán kính).
4.Arc tương tự circle (nghĩ thôi chưa viết)
5.các cái khác như text, hatch thì bí, về thủ công thì mình chuyển tất thành line là ok nhưng mình muốn đi phát tổng quát tính là chia ô độ lớn tùy ý tại mổi ô thực hiện chọn nếu có đối tượng đọc màu đối tượng, nếu không thì là màu màn hình hoặc ko thực hiện vẽ vector nhưng oái ăm là hatch và text không phải cứ kích trên phạm vi hiển thị của ảnh là chọn được nên mới có cái nhu cầu trên.
-Thank all!
  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#3 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 12 July 2012 - 04:26 PM

Nhân tiện thọ giáo các bác 1 vấn đề (tất nhiên vì nó có liên quan đến ứng dụng này):
-Lisp có cách nào đọc được màu tại 1 điểm chỉ định trên màn hình hay không dù là tại điểm này có đối tượng hay không có đối tượng giống như nhìn mắt thường ấy cứ thấy xanh thì bảo xanh mà đen thì bảo đen.
-Thank all!

Tức là lấy màu của màn hình (screen) hả anh?
Mà nếu mà lấy màu màn hình (screen) thì đâu có liên quan đến "1 điểm" ở đây?
Anh vui lòng nói rõ hơn.
  • 0

#4 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 12 July 2012 - 04:35 PM

Tức là lấy màu của màn hình (screen) hả anh?
Mà nếu mà lấy màu màn hình (screen) thì đâu có liên quan đến "1 điểm" ở đây?
Anh vui lòng nói rõ hơn.

Mình nói rỏ thêm ở trên đấy!
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#5 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 12 July 2012 - 07:32 PM

Với text và hatch thì bác Duy đưa ra cách làm không hợp lý dẫn đến nhu cầu trên cũng không hợp lý.
Em chưa hoàn thiện công cụ này vì ít khi dùng nó, khi nào dùng thì thủ công tý cũng được nên không có code để post cho bác. Nhưng em có ý kiến như này:

Ở trên em thấy bác thực hiện việc "chia ô với độ lớn tùy ý". có nghĩa là với đối tượng dạng mảng bác tô màu cho nó "với mật độ dày đặc" các điểm ảnh hoặc vector. Như vậy là thừa. ta chỉ cần tô với con số "vừa đủ". Với bất kỳ đối tượng dạng mảng nào ta đều có thể tính toán được con số vừa đủ này bằng bao nhiêu. Điều này dễ dàng cho người lập trình đồng thời cũng giúp cho máy tính không phải vẽ thêm các vector vô nghĩa.

Cụ thể: trong cái hình avatar của em khi đưa vào hộp thoại em để khoảng cách giữa các vector là 1 pixel (đơn vị graphic image của hộp thoại) và như vậy em chỉ cần tô màu cái hình đó bằng các line cách nhau đúng 1 đơn vị bản vẽ. (cái nền phía sau hộp thoại trong ảnh đó bác)
Hình đã gửi
Với text và hatch là đối tượng cad thì việc tô màu này đơn giản hơn so cái avt (bitmap) của em nhiều. bác chỉ cần tô bằng nét hatch các đường song song với khoảng cách các đường là 1 đơn vị bản vẽ. khi đó việc độc màu và tọa độ của vector quá đơn giản với bác rồi.

Edit: em quên. với text thì để tô màu, bác dùng lệnh TXTEXP của express tool sẽ lấy được biên để tô.
  • 2

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#6 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 12 July 2012 - 09:57 PM

-Thì hiện nay mình đang làm thế với hatch và text mà (thủ công).
-Về khoảng cách thì mình cũng đã tìm ra khoảng cách hợp lý rồi như các icon trên đấy.
-Khoảng cách tùy ý mình nói nghĩa là khi thực hiện đọc mình sẽ cho tùy chọn bước nhảy của ô.
Nói chung mình đã tổng hợp được cho đọc tư động được 3 kiểu đối tượng như trên còn các loại đt khác phải qua bước chuẩn bị thủ công. Mình muốn nếu đọc được màu hiển thị trên 1 điểm thì mình làm cho tự động tất luôn í mà. (hiện nay cũng đã ưng ý rồi nhưng mình tham vọng dùng nó cho líp tạo thư viện luôn)
  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#7 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 16 July 2012 - 08:44 AM

Đầu tuần giật topic này lên phát. Giới thiệu thêm 10 icon mới vẽ. Xem ten bằng lệnh GTKHF.
Hình đã gửi

http://www.4shared.c...0E/kyhieuf.html
  • 2

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#8 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 17 July 2012 - 02:57 PM

Cập nhật tình năng hiển thị tiếng Việt có dấu cho lisp. Ở đây nhận gỏ tiếng Việt có dấu bằng TCVN3 (thực chất lisp tự chuyễn sang unicode hexa). Tại các vị tri nhập text bạn cứ nhập bằng TCVN3 thì sẽ hiển thị ok trên hộp thoại.
http://www.4shared.c...hopthoaitv.html
  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#9 quang_lac

quang_lac

    biết lệnh mirror

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

Đã gửi 18 July 2012 - 10:40 AM

Up sang medifire đi a Duy ơi, up lên 4shared link down toàn báo lỗi ah, ko down được file nào
  • 0

#10 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 18 July 2012 - 04:38 PM

Cập nhật úp lên cadviet. Cả 3 file trong 1.
http://www.cadviet.c...5_gioithieu.rar
  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#11 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

Đã gửi 22 January 2015 - 10:19 AM

Chào các bạn, cho mình hỏi ?

Lisp có tạo được hộp thoại modeless không vậy, kiểu như hộp thoại properties vậy, tức mình có thể thay đổi đối tượng từ hộp thoại cũng như đối tượng có thay đổi thì nó cập nhật ngay lên hộp thoại.

Cám ơn các bạn


  • 1

#12 quansla

quansla

    biết lệnh xclip

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

Đã gửi 22 January 2015 - 03:00 PM

Một câu hỏi rất hay mình cũng rất muốn tìm hiểu về vấn đề này, hiện tại mình có thể làm được việc cho trước(hoặc tạo) 2 danh sách ls1,ls2 khi đó nếu ấn vào đâu đó thì ls1, ls2 tự động cập nhật. Nhưng với cách này, "ấn vào đâu đó" được hiểu là ấn vào một nút xác định "thuộc hộp thoại" chứ không phải "bất kỳ trên Cad" hay nói cách khác khi hộp thoại hiện nên mình không làm gì được với nền Model của Cad, nếu muốn làm bắt buộc phải un_dialog hộp thoại, thực hiện lênh, cho hiện lại hộp thoại.
Hi vọng các bác cho ý kiên
P/s link mà mình học được cách tự động Update hộp thoại (của LEE-Mac )
http://www.lee-mac.c...istboxsync.html


  • 0