Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
Jin Yong

Thủ thuật nhỏ từ Lisp

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

Đôi khi, chỉ bằng một câu lệnh lisp đơn giản, chúng ta đã khiến việc giao tiếp với Cad trở nên dễ dàng và thuận tiện (comfortable)

Bạn làm việc với Cad, tất nhiên phải sử dụng nhiều layer để thể hiện các đối tượng khác nhau. Nhưng thật bất tiện khi mỗi lần vẽ một đối tương mới, một loại đường mới lại phải mò chuột lên đổi Layer, hoặc cứ vẽ rồi phải dùng lệnh Matchprop để sao tính chất

Mọi chuyện sẽ thật đơn giản khi bạn tạo những lệnh lisp để gọi đồng thời cả việc đổi layer và lệnh vẽ

Chẳng hạn:

 

(defun c:lt () (command "_layer" "Set" "P-thay" "") (command "Line"))
(defun c:lh () (command "_layer" "Set" "P-hatch" "") (command "BHATCH"))

Hai lệnh trên, một là chuyển qua layer P-thay và gọi lệnh vẽ đường thẳng (bằng lệnh lt) một là chuyển qua layer P-hatch và gọi lệnh hatch (bằng lệnh lh)

Chỉ bằng cách viết hai lệnh lisp dạng như vậy, ta đã có thể thực hiện dễ dàng hơn việc vẽ các đối tượng ở các layer khác nhau mà ko cần mò chuột lên đổi layer

Cách trên yêu cầu phải tạo sự thống nhất kiểu layer trong các bản vẽ và sự thống nhất giữa các người vẽ . Trong thời đại hiện nay, việc tạo một style thống nhất là điều nên làm

 

Đó chỉ là một ứng dụng đơn giản trong việc thân hiện hoá Cad . Jin nghĩ còn nhiều mẹo khác nữa mà mõi người đã tự tạo riêng cho mình . Mọi người có thể cùng chia sẻ chứ ?

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

Bạn đã bao giờ muốn copy multi mà khoảng cách của các đối tượng là giống nhau chưa? bạn sẽ dùng lệnh array? tuy nhiên khi bạn dùng lệnh Array, bạn phải trả lời một loạt các thông số không cần thiết. Làm sao để chỉ chọn đối tượng, pick 2 điểm như copy và nhập số đối tượng được nhân lên như lệnh array.

 

Sau đây là mã lệnh lisp đơn giản để tạo ra lệnh array copy, dùng như lệnh copy, ngoại trừ việc bạn phải nhập thêm số lần được nhân lên (nếu bạn nhập số lần bằng 1, đó chính là lệnh copy nguyên bản).

 

(defun c:ac (/ dt p1 p2 sl index kc goc)

(setq dt (ssget)

p1 (getpoint "\nVao diem goc: ")

p2 (getpoint p1 "\nVao diem den: ")

sl (getint "\nVao so lan: ")

goc (angle p1 p2)

kc (distance p1 p2)

index 0

)

(repeat sl

(setq index (1+ index))

(command ".copy" dt "" p1 (polar p1 goc (* kc index)))

)

)

 

Tải file lisp: http://www.cadviet.com/upfiles/ac.lsp

  • 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

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  

×