Thứ Ba, 14 tháng 12, 2010

Lệnh FILLET với bán kính R=0, không ảnh hưởng tới lệnh FILLET hiện tại.

Trong khi vẽ nhất là quy hoạch bạn phải dùng lệnh fillet với 1 số bán kính r nhất định, nhưng thỉnh thoảng lại cần fillet với bán kính R=0 thì lại mất cái giá trị cũ cứ phải gỏ lại. Cad đời mới thì nhấn nút gì gì đó trong khi thực hiện lệnh fillet sẽ cho ra bán kính R=0 nhưng mình quen dùng lệnh nên đặt cái lisp để làm việc này.
-Bình thường bạn cứ dùng lệnh FILLET bình thường.
-Muốn FILLET với bán kính R=0 thì dùng lệnh F0, không ảnh hưởng chi tới ông FILLET cả nhé.

Bạn copy nội dung và tạo file lisp hay tải file về cũng được!

(defun c:f0)
(setq bkflcu (getvar "filletrad"))
(setvar "FILLETRAD" 0)
(command "fillet" pause)
(while (< 0 (getvar "CMDACTIVE"))
(command pause)
)
(setvar "FILLETRAD" bkflcu)
(Princ)
)

Thứ Hai, 6 tháng 12, 2010

Copy xong thì lưu nhóm đối tượng sau cùng thành đối tượng vừa chọn.

Mổi khi bạn dùng lệnh COPY xong thực hiện lệnh khác muốn chọn đối tượng vừa chọn trước thì dùng tham số P, muốn chọn đối tượng vừa tạo ra thì dùng tham số L, nhưng cái ông L này chỉ chọn được mổi cái đối tượng mới nhất thôi chứ ko có được 1 nhóm đối tượng mới nhất. Bạn ưng chọn được nhóm đối tượng mới nhất sinh ra bởi lệnh copy chứ gì? Dùng cái này nhé:
Thay vì dùng COPY thì dùng CPP của duy782006 nì thì sau đó dù bất cứ lệnh gì bạn gọi tham số P nó sẽ chọn cái nhóm đối tượng tạo ra sau cùng cho bạn.
Bạn copy nội dung và tạo file lisp hay tải file về cũng được!

(defun c:cpp ( )
(Prompt "\nchon doi tuong")
(Setq dtgoc (Ssget))
(setq a (getpoint "\nChon diem chuan: "))
(setq b (getpoint a"\nCopy den diem: "))
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(command ".move" dtgoc "" a b)
(command ".copy" dtgoc "" b a)
(setq a b)
(setvar "osmode" oldos)

(while (setq b (getpoint a"\nCopy den diem : "))
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(command ".move" dtgoc "" a b)
(command ".copy" dtgoc "" b a)
(setq a b)
(setvar "osmode" oldos)
)
(command "undo" "end")

(Princ)
)

Thứ Sáu, 3 tháng 12, 2010

Khung lisp di động để bạn phát triển.

Đây là Bài viết của mình bên CADVIET.COM chủ đề này cũng nhiều bạn quan tâm nên đem về đăng lun trên blog mình.
Nguyên văn câu hỏi:

Trích dẫn(nguoi_tho_mo @ Nov 18 2010, 10:45)
Bác duy782006 và các cao thủ làm một mẫu "tien ich cv" đơn giản, có các loại foder: DWG, LSP, HETHONG, THVIEN...
mỗi foder chỉ nên có 1-vài file làm ví dụ cụ thể. khi muốn update, bổ xung lisp mới thì làm như thế nào?
nên viết bằng lsp không mã hóa để người dùng hiểu một phần + bổ xung + hoàn thiện.
Mục đính: nhiều người mới bắt đầu có thể tự làm dc tiện ích nho nhỏ cho mình và share lên diễn đàn.


Và đây là bài viết của mình:

Theo ý của bạn mình làm 1 cái khung đơn giản để bạn tự phát triển:
Mình tổ chức thư mục LISPDD chứa các thư mục con như sau:
-RUN: thư mục này chứa 3 file lisp khởi đầu dùng load menu, thiết lập đường dẩn và các việc cần thiết ban đầu.
-DCL: Chứa 1 file dcl ví dụ và các file text + sld dùng cho hiển thị hộp thoại này.
-CHEPTHEM: thư mục này có đặc điểm là sau khi load lisp bạn gỏ lệnh CAPNHAT thì các file chứa trong thư mục này được copy vào thư mục cài đặtcủa cad.
-AUTOADD: thư mục này sẽ được tự động add thêm vào đường dẩn tìm kiếm của cad sau khi bạn load lisp.
-LISP: thư mục này hiện chứa 3 lisp ví dụ, các lisp của bạn cũng nên tập trung vào đây để quản lý và load cho dể kiểm soát.
-HETHONG: hiện nay chứa file mns dùng hiển thị menu.

*Cách dùng:
Để chạy bộ này có 2 cách:
-Di động: Load file lispdd/run/didong.lsp. nó hỏi chỉ file duy.ico bạn chỉ cho nó lúc này nemu, lisp sẳn có sẽ được load lên để bạn dùng thử.
-Cố định:Trước tiên phải copy toàn bộ thư mục lisddd vào ổ C xong Load file lispdd/run/codinh lúc này nemu, lisp sẳn có sẽ được load lên để bạn dùng thử.
*Cách chỉnh sửa và thêm lisp, menu.
Sau khi load thành công thì thư mục AUTOADD sẽ được thêm vào đường dẩn tìm kiếm của cad nên nếu bạn có file nào cần dùng cho lisp mà ko muốn chỉ định đường dẩn trong lisp thì chứa nó trong thư mục này.
Lệnh HETHONG dùng copy toàn bộ các file trong thư mục CHEPTHEM vào thư mục cài đặt của cad chức năng này dùng khi bạn có 1 số file cần cập nhật mới ví dụ như line, hatch .v.v. (khi nào gỏ lệnh HETHONG thi mới thực hiện chức năng này nếu ko dùng đến thì ko gỏ lệnh này là xong).
-Cách thêm lisp vào: Bạn mở file lispdd/run/goilenh.lsp, bên dưới đoạn
(load(strcat odiachay "/lispdd/lisp/lisp1"))
(load(strcat odiachay "/lispdd/lisp/lisp2"))
(load(strcat odiachay "/lispdd/lisp/lisp3"))
bạn thêm 1 dòng:
(load(strcat odiachay "/lispdd/lisp/lisp4"))
Lưu ý lisp4 là tên lisp thêm vào không cần phần .lsp nhé. Muốn thêm nhiều lisp thì thêm nhiều dòng.
-File menu thì sửa trong lispdd/hethong/lispdd.mns. File này mình viết đơn giản gồm 3 dòng đôn và 1 nemu xếp lớp đọc cái hiểu ngay nên chắc ko cần hướng dẩn chỉnh file này. Sau khi chỉnh xong thì xóa file lispdd.cui đi để khi khởi động cad sẽ load lại nemu (nó tự load bạn ko phải load).