Lễ trao bằng tốt nghiệp kd11-00
Lễ trao bằng tốt nghiệp kd11-00
Hội thảo lutron
Hội thảo lutron
Đồ án tốt nghiệp
Đồ án tốt nghiệp
Giảng viên nữ nam 2016
Giảng viên nữ nam 2016
Lãnh đạo khoa 2016
Lãnh đạo khoa 2016
Toàn khoa năm 2016
Toàn khoa năm 2016

Hạ tầng đô thị thông minh là một trong những ứng dụng không thể thiếu của mạng lưới kết nối vạn vật trong những năm gần đây. Với nhiều ứng...

Lập trình Autolisp for AutoCAD - Bài 4

12/04/2015 | Sưu tầm

Từ 2 điểm a và b lisp sẽ làm được rất nhiều việc. 
-Giới thiệu 1 số hàm đối với 1 điểm:
(setq xa (car a)) tạo độ x của điểm a

(setq ya (cadr a)) tọa độ y của điểm a
(setq za (caddr a)) tọa độ z của điểm a
-Giới thiệu 1 số hàm đối với 2 điểm:
(setq daiab (distance a b)) khoảng cách từ a đến b
(setq gocab (angle a b)) góc mà đoạn ab tạo với trục x
-Giới thiệu hàm tính toán:
Cú pháp các hàm toán học hơi ngược với cách thông thường:
(dấu sốđầu sốsau) nghĩa là nếu muốn có a+b thì viết (+ a b) đối với + - * / điều như vậy.
**Từ hai điểm a và b kết hợp các hàm trên chúng ta bắt đầu cho việc tính toán cho ra những kết quả phục vụ cho việc mình cần.
-Tìm điểm nằm chính giữa a và b:
+Ngoài việc xác định 1 điểm bằng cách pick điểm thông qua hàm getpoint như trên thì 1 điểm trong lisp còn biểu diển như sau:
(setq c (list xc yc zc))

Trong đó:
Xc, yc, zc lần lượt là tọa độ x, y,z của điểm c các giá trị này được xác định kiểu gì cũng được. Trong trường hợp này xác định từ các giá trị của điểm a và b. Để đơn giản mình chỉ tính toán trên mặt phẳng xy khi nào lisp vẽ phối cảnh mình hãy đưa giá trị z vào từ bây giờ 1 điểm chỉ cần biểu diển bằng x và y nên xác định điểm c như sau: (setq c (list xc yc))

(setq xab (+ xa xb)) xác định 1 biến tạm bằng tổng x điểm a và x điểm b
(setq yab (+ ya yb)) xác định 1 biến tạm bằng tổng y điểm a và y điểm b
(setq xc (/ xab 2)) xác định x điểm c bằng cách lấy xab chia 2
(setq yc (/ yab 2)) xác định y điểm c bằng cách lấy yab chia 2
(setq c (list xc yc)) xác định điểm c bằng x và y vừa tính được.
(defun c:doanthang ()
(setq a (getpoint " Chon diem: "))
(setq b (getpoint a" Chon diem: "))
(command ".line" a b "")
(command ".circle" a b)
(command ".circle" b a)
(setq xa (car a))
(setq ya (cadr a)) 
(setq xb (car b))
(setq yb (cadr b)) 
(setq xab (+ xa xb)) 
(setq yab (+ ya yb)) 
(setq xc (/ xab 2)) 
(setq yc (/ yab 2)) 
(setq c (list xc yc)) 
(command ".circle" c a)
(princ)
)

*Bây giờ chạy thử đoạn trên bạn sẽ thấy có thêm 1 vòng tròn tâm là trung điểm đoạn ab đường kính bằng ab.
*Hai hàm: distance và angle trong bài này chưa xài tới nhưng nhân tiện nói về đểm mình nói luôn bạn hãy ghi nhớ cho sau này.

Nguồn: kts-duy.blogtiengviet.net

:
Bài viết liên quan
Lập trình Autolisp for AutoCAD - Bài 5
Đoạn lisp trên mình viết rất cơ bản làm từng bước 1 để bạn làm quen, thực chất bạn có thể làm gọn lại bằng cách gộp các đoạn lại với nhau.
12/04/2015
Lập trình Autolisp for AutoCAD - Bài 6
Bây giờ bỏ bớt cái hình tròn tâm b đường kính ab đi. Áp dụng lệnh Array với cái hình tròn tâm a đường kính ab. Cho nó Array thành 8 đối tượng quanh điểm...
12/04/2015
 Back on top