Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
Doan Van Ha

[Quà biếu] Tạo Menu lệnh thường dùng

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

Tham gia CADViet từ 08/2010 đến nay, học được rất nhiều mà đóng góp chưa bao nhiêu, nên thấy cần phải làm một việc gì đó cho CADViet!

Có nhiều Bạn băn khoăn về cách tạo Menu các lệnh thường dùng nên tôi mạo muội góp chút ít công sức để giúp các Bạn về chủ đề này vậy.

Món quà này có thể giúp các Bạn tạo menu các lệnh thường dùng, hướng dẫn chi tiết cách thêm các lệnh thường, lệnh mẹ, lệnh con/cháu, và thêm đường phân cách, cũng như cách thay và loại chúng…

Các hộp thoại viết bằng tiếng Việt. Menu viết bằng tiếng Việt không dấu. Tuy nhiên, Menu vẫn có thể viết bằng tiếng Việt có dấu, tuy hơi phức tạp (xem file hướng dẫn đính kèm trong thư mục).

Các bạn tải file về máy, Copy thư mục “Tao_menu” vào đâu đó, rồi Load file “Tao_menu.lsp” chỉ 1 lần là dùng được lâu dài.

Hy vọng nó giúp ích cho công việc của các Bạn!

http://www.cadviet.com/upfiles/3/tao_menu_1.zip

P/S: Link này đã sửa theo góp ý của Tue_NV ở #2 và 790312 ở #4. Và sẵn sàng sửa nếu Bạn góp ý!

 

Nếu thấy nó có ích, hãy nhấn Thanks + để động viên nhé Bạn!

 

untitled-1.jpg

  • Vote tăng 6

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

Tham gia CADViet từ 08/2010 đến nay, học được rất nhiều mà đóng góp chưa bao nhiêu, nên thấy cần phải làm một việc gì đó cho CADViet!

Có nhiều Bạn băn khoăn về cách tạo Menu các lệnh thường dùng nên tôi mạo muội góp chút ít công sức để giúp các Bạn về chủ đề này vậy.

Món quà này có thể giúp các Bạn tạo menu các lệnh thường dùng, hướng dẫn chi tiết cách thêm các lệnh thường, lệnh mẹ, lệnh con/cháu, và thêm đường phân cách, cũng như cách loại chúng…

Các hộp thoại viết bằng tiếng Việt. Menu viết bằng tiếng Việt không dấu. Tuy nhiên, Menu vẫn có thể viết bằng tiếng Việt có dấu, tuy hơi phức tạp (xem file hướng dẫn đính kèm trong thư mục).

Các bạn tải file về máy, Copy thư mục “Tao_menu” vào đâu đó, rồi Load file “Tao_menu.lsp” chỉ 1 lần là dùng được lâu dài.

Hy vọng nó giúp ích cho công việc của các bạn!

http://www.cadviet.com/upfiles/3/tao_menu.zip

 

Nếu thấy nó có ích, hãy nhấn Thanks + để động viên nhé Bạn!

untitled-1.jpg

Tue_Nv load về chạy thử lệnh XMn thì báo lỗi

Command: xmn ; error: bad argument type: stringp nil

 

Mình nghĩ đơn giản chỉ bằng 1 lệnh CUI là có thể tạo đủ thứ. Từ menu tiếng Việt, Toolbar, Icon cho menu, Shortcut key, hay là tạo menu để nó tự load 1 file Lisp nào đó.....

Có thể thêm, sửa , xóa...

 

Thấy Bạn viết chỉ có cái Thêm, không biết có Sửa hay xóa lệnh nào đó trong menu không?

Không chạy được nên không góp ý gì thêm

 

Edit : OK , chạy được rồi, nhưng chẳng sửa được khi đã trót thêm rồi -> Phải "Loại" đi và thêm mới đượ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

Tue_Nv load về chạy thử lệnh XMn thì báo lỗi

Edit : OK , chạy được rồi, nhưng chẳng sửa được khi đã trót thêm rồi -> Phải "Loại" đi và thêm mới được

Quên cái "trót" của bác rồi, sẽ bổ sung!

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

Cách tạo menu con hình như bị lỗi.Thí dụ tạo menu Block thì đánh ->Block phần tên lệnh bỏ trống thì nó báo lỗi.....Mong bạn xem giùm với.

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

Cách tạo menu con hình như bị lỗi.Thí dụ tạo menu Block thì đánh ->Block phần tên lệnh bỏ trống thì nó báo lỗi.....Mong bạn xem giùm với.

Đã sửa theo góp ý của Tue_NV ở #2 và 790312 ở #4. Vẫn đường Link ở đầu trang (#1) để tiết kiệm đất. Và sẵn sàng sửa nếu Bạn góp ý!

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

Nhờ bạn bỏ chức năng mỗi lần mở cad lên nó lại hiện thông báo :Bạn đã load thành công.vì phải nhấn enter thêm lần nữa.Cảm ơn bạn nhiều.

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

Nhờ bạn bỏ chức năng mỗi lần mở cad lên nó lại hiện thông báo :Bạn đã load thành công.vì phải nhấn enter thêm lần nữa.Cảm ơn bạn nhiều.

Sửa thì được, nhưng đơn giản nhất là bạn đừng copy chúng vào thư mục hiện hành hoặc đừng cho vào "Add to history". Cứ để chúng đi lang thang đâu đó thì sẽ hết tự load khi mở 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

Không bạn ah,mình có copy cái nào đâu,mình để nguyên thư mục của bạn thôi.Mình không muốn hiện bảng BẠN ĐÃ TẢI CHƯƠNG TRÌNH THÀNH CÔNG bạn ah.vì mở cad lên hiện bảng này bất tiện phải enter.Mong bạn giúp.

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

Không bạn ah,mình có copy cái nào đâu,mình để nguyên thư mục của bạn thôi.Mình không muốn hiện bảng BẠN ĐÃ TẢI CHƯƠNG TRÌNH THÀNH CÔNG bạn ah.vì mở cad lên hiện bảng này bất tiện phải enter.Mong bạn giúp.

Tôi đã kiểm tra. Và theo hiểu biết của tôi thì không thể xuất hiện dòng "Bạn đã tải..." khi mở Cad nếu như file "Tao_menu.lsp" không được load. Còn nếu muốn tự động load 1 file lsp ngay khi mở cad thì file phải được đưa vào "Add to history" hoặc chép nó vào 1 file lsp được chương trình cài tự load sẵn.

Bạn nào đã sử dụng phần mềm này hãy kiểm tra giùm tôi với. Còn Bạn nào biết vì sao 790312 tự load "Tao_menu.lsp" khi mở cad thì chỉ giùm. May ra học được thêm 1 kiến thứ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

Khi bạn hướng dẫn phải load "Tao_menu.lsp" 1 lần để sử dụng lâu dài.Vậy nếu không load lisp này thì không hiện dòng "Bạn đã tải..." như thế còn sử dụng được chương trình của bạn được không?Cảm ơn bạn nhiều.

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

Khi bạn hướng dẫn phải load "Tao_menu.lsp" 1 lần để sử dụng lâu dài.Vậy nếu không load lisp này thì không hiện dòng "Bạn đã tải..." như thế còn sử dụng được chương trình của bạn được không?Cảm ơn bạn nhiều.

Load 1 lần để đưa tiện ích "Tao_menu" lên toolbar. Lần sau mở Cad thì "Tao_menu" đã có sẵn trên toolbar. Còn khi muốn sử dụng các lệnh trong "Tao_menu" thì có bước "Tai chuong trinh" trong nó, và bạn phải chọn nó thì chương trình mới được load, khi đó các lệnh của bạn mới có hiệu lực.

Lý do mỗi lần dùng phải "Tai chuong trinh" là để tránh xung khắc với các phần mềm lsp khác (nếu có). Bác Phamthanhbinh có 1 "câu thơ" tôi nhớ hoài:

Một lisp thì sống,

Đống lisp thì... toi.

Còn nếu bạn muốn mở cad là các lệnh trong "Tao_menu" có hiệu lực ngay thì tôi sẽ sửa cho bạn, nhưng không nên bạ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

Cảm ơn bạn đã giải thích cụ thể,tiện thể cho mình hỏi nếu muốn thay đổi tên Tao_Menu trên thanh công cụ của cad bằng tên khác thì sửa như thế nào?

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

Cảm ơn bạn đã giải thích cụ thể,tiện thể cho mình hỏi nếu muốn thay đổi tên Tao_Menu trên thanh công cụ của cad bằng tên khác thì sửa như thế nào?

Gồm các bước:

1). Dùng lệnh XMN trên toolbar của chương trình để xóa "Tao_menu".

2). Mở file "Tao_menu.lsp""Tao_menu.mns" ra, trong từng file bạn thay như thế này là được:

Thay [Tao_menu] bởi [Anh_yeu_em] rồi save chúng.

3). Load lại file "Tao_menu.lsp". Thế là trên toolbar sẽ có Anh_yeu_em... say đắm luô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

Đã sửa theo góp ý của Tue_NV ở #2 và 790312 ở #4. Vẫn đường Link ở đầu trang (#1) để tiết kiệm đất. Và sẵn sàng sửa nếu Bạn góp ý!

Thực ra cái của bác nó chưa có rạch ròi là phục vụ đối tượng nào:

-Nếu là người ko biết gì về tạo menu thì hơi khó vì phải nhìn màn hình là màn hình soạn thảo và phải học cách bắt đầu và kết thúc một menu xếp lớp.

-Nếu đã biết cách viết 1 file menu thì lại ko cần dùng cái của bác nửa.

*Theo mình thì để phục vụ cho người ko biết gì về viết menu thì nên làm theo hướng:

-Thiết kế 2 menu song song:

+Khi gọi lên thì là menu sử dụng có menu kèm 1 lệnh ban đầu duy nhất là “gọi menu biên tập”.

+Chọn “gọi menu biên tập” thì lên menu dùng biên tập: menu này có 1 lệnh tạo mới mục đơn và tạo mới mục xếp lớp, đồng thời cập nhật tất cả các mục đã được tạo bên menu sử dụng.

-Hoạt động: Mỗi mục bên menu biên tập sẽ có tên tương ứng với bên menu sử dụng nhưng khi chọn vào sẽ cho ra các lựa chọn:

+Xoá Mục.

+Chỉnh mục.

+Chèn dưới mục.

+Chuyển lên.

+Chuyển xuống.

-Trong menu biên tập sẽ có lệnh gọi menu sử dụng để quay về sử dụng.

-Hướng thì mình đề xuất tổ chức:

+Lưu đoạn nội dung các mục đơn ra 1 file,

+Lưu đoạn nội dung từng mục xếp lớp ra từng file.

+Đọc nội dụng các file ghép đầu, cuối cho ra file .mns

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

Đã sửa theo góp ý của Tue_NV ở #2 và 790312 ở #4. Vẫn đường Link ở đầu trang (#1) để tiết kiệm đất. Và sẵn sàng sửa nếu Bạn góp ý!

Ý kiến của cá nhân Tue_NV là :

Khi đã viết Lisp, thì tính năng của nó phải hơn hẳn các lệnh của CAD có cùng tính năng như nó. Nếu không, sử dụng lệnh của CAD còn sướng hơn vì tính năng nó ưu việt hơn, hiệu quả sử dụng cao hơn Lisp. Viết Lisp ra cũng chỉ với mục đích sử dụng là hiệu quả, tối ưu hơn hẳn lệnh CAD. Lệnh CUI của CAD "dư sức" tạo menu và còn có những tính năng khác mà bản thân Lisp không thể làm đượ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

Ý kiến của cá nhân Tue_NV là :

Lệnh CUI của CAD "dư sức" tạo menu và còn có những tính năng khác mà bản thân Lisp không thể làm được.

Vậy bác có vài lời giới thiệu về lệnh CUI cho a e học hỏi với.Thanks

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ậy bác có vài lời giới thiệu về lệnh CUI cho a e học hỏi với.Thanks

Đập cái chử đó vào rồi vọc tí là 0k ngay ko có chi là khó bởi nó trực quan kiểu bốc, kéo, thả, gỏ

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

Tue_NV, said:

Ý kiến của cá nhân Tue_NV là :

Lệnh CUI của CAD "dư sức" tạo menu và còn có những tính năng khác mà bản thân Lisp không thể làm được.

duy782006, said:

Đập cái chử đó vào rồi vọc tí là 0k ngay ko có chi là khó bởi nó trực quan kiểu bốc, kéo, thả, gỏ

t031285, said:

Vậy bác có vài lời giới thiệu về lệnh CUI cho a e học hỏi với.Thanks

@ Tue_NV + Duy782006:

Tôi chỉ mới biết thay đổi vị trí các lệnh + hiệu chỉnh lệnh, chứ không biết thêm lệnh + thêm menu mới bằng CUI. 2 bác giúp giùm đi.

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

@ Tue_NV + Duy782006:

Tôi chỉ mới biết thay đổi vị trí các lệnh + hiệu chỉnh lệnh, chứ không biết thêm lệnh + thêm menu mới bằng CUI. 2 bác giúp giùm đi.

Đánh lệnh CUI được window như sau:

Hy vọng giúp được bạn!

 

(Hình lấy trên net)

originalvmpbl-1px-1.jpg

  • 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

@Doan van Ha: Nhờ bác viết giúp hàm:

Xoá bỏ dòng có nội dung doidung trong file txt tenfiletxt

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

@Doan van Ha: Nhờ bác viết giúp hàm:

Xoá bỏ dòng có nội dung doidung trong file txt tenfiletxt

Ủa, Bác nói rõ hơn chút! Đâu có file txt đâu 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

Ủa, Bác nói rõ hơn chút! Đâu có file txt đâu nhỉ?

Hị hị ý là như này:

Mình có file *.txt đường dẩn xác định mình gán cho biến filetxt. Và nội dung dòng gán cho biến noidung. Biết rằng nội dung dòng này chắc chắn có trong file. Giờ muốn xoá, sửa nội dung, chèn thêm phía trên, chèn thêm phía dưới. Nhưng nhờ bác viết đoạn xoá còn các cái khác mình bắt chước làm theo.

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

Hị hị ý là như này:

Mình có file *.txt đường dẩn xác định mình gán cho biến filetxt. Và nội dung dòng gán cho biến noidung. Biết rằng nội dung dòng này chắc chắn có trong file. Giờ muốn xoá, sửa nội dung, chèn thêm phía trên, chèn thêm phía dưới. Nhưng nhờ bác viết đoạn xoá còn các cái khác mình bắt chước làm theo.

Cách làm của tôi như thế này:

1). Mở file txt để read.

2). Duyệt từng dòng, nếu dòng nào không trùng với "noidung" thì cho nó vào 1 list, đóng file.

3). Mở txt để write từng dòng từ list, đóng file. Thế là được file có "noidung" đã bị xóa.

Nếu Bác bận lắm thì chiều nay tôi viết giùm bác vậy.

Thân thương!

  • 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

Cách làm của tôi như thế này:

1). Mở file txt để read.

2). Duyệt từng dòng, nếu dòng nào không trùng với "noidung" thì cho nó vào 1 list, đóng file.

3). Mở txt để write từng dòng từ list, đóng file. Thế là được file có "noidung" đã bị xóa.

Nếu Bác bận lắm thì chiều nay tôi viết giùm bác vậy.

Thân thương!

-Vốn mình làm được nhưng đoạn tạo list lại ko biết nên phải ghi qua file trung gian xong ghi lại qua thấy lòng thòng mà bác lại làm đc chuyện này nên nhờ để học luôn việc tạo list.

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ốn mình làm được nhưng đoạn tạo list lại ko biết nên phải ghi qua file trung gian xong ghi lại qua thấy lòng thòng mà bác lại làm đc chuyện này nên nhờ để học luôn việc tạo list.

Trước đây tôi hay làm như Bác (tức là tạo file tạm trung gian sau đó delete nó). Sau này tôi chuyển qua list cho khỏe hơn. Xin gởi Bác.

; (setq filetxt "D:\\...\\Duy.txt")
; (setq noidung "efghk")
(defun XOA_DONG(filetxt noidung / dstxt file PR n)
(setq file (open filetxt "r"))
(setq dstxt '())
(while (setq PR (read-line file))
 (if (/= PR noidung)
  (setq dstxt (reverse (cons PR (reverse dstxt))))))
(close file)
(setq file (open filetxt "w"))
(foreach n dstxt
 (write-line n file))
(close file)
(princ))

  • 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

Đăng nhập để thực hiện theo  

×