DesignAutoLisp 0 Báo cáo bài đăng Đã đăng Tháng 7 2, 2014 cả nhà cho e hỏi chút ạe mới bắt đầu học viết lisp nên rất bỡ ngỡ và có nhiều điều không hiểu và muốn được các cao thủ chỉ giúp...thks mọi người.e có điều này thắc mắc mong mọi người chỉ giáo..! - Trong ví dụ này mình dùng hàm repeat để nhập 10 lần hàm getpoint và vẽ point tại các vị trí ta pick chuột trên màn hình autocad, và vẽ đường pline đi qua các điểm mà ta pick chuột đó. thấy là câu lệnh (command "point" pt "") thì thực hiện ngon lành còn câu lệnh (command "pline" pt pt "") không thấy bểu hiện gì, vậy lý do là sao? Tiếp đó mình muốn hỏi luôn là cách lấy tọa độ của các điểm ứng với mỗi lần pick khi ta dùng hàm getpoint là thế nào . Tức là khi ta pick 100 lần chẳng hạn thì sẽ có 100 giá trị tương ứng. - Mọi người cũng cho mình hỏi thêm câu nữa là trong autolisp có cách nào khai báo kiểu mảng như trong VBA không? Và cách khai báo mảng trong lisp là như nào vậy? THKSSSSSSSS......:) (repeat 10(setq pt(getpoint))(command "point" pt "")(command "pline" pt pt "")) 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
Tot77 508 Báo cáo bài đăng Đã đăng Tháng 7 3, 2014 Lệnh point chỉ nhập 1 cái là dứt lệnh, cho nên phải viết (command "point" pt) là đủ rồi, dấu "" là dư. Bạn phải viết như vầy: (command "pline") (repeat 10 (setq pt(getpoint)) (command pt) ) (command "") Lisp không cần khai báo mảng như vba. Không giống như vba mảng chỉ có 1 loại (mảng integer, mảng real, mảng string...), lisp có mảng mang tên hàm list có thể chứa đủ loại và có thể chứa cả list khác. td : (list 1 2.5 "ABC" (list "CDF" 345.2)) Sau này khi du nhập vba qua các hàm vla thì lisp mới có dạng khai báo biến kiểu 1 loại như: (vlax-make-safearray vlax-vbdouble (cons 0 1)) ;;;khai báo mảng 1 chiều gồm 2 phần tử kiểu double 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
DesignAutoLisp 0 Báo cáo bài đăng Đã đăng Tháng 7 3, 2014 thks bạn nhiều... vậy bạn cho m hỏi là m muốn lấy toạ độ từng điểm khi mình dùng hàm getpoint và pick trên màn hình autocad là thế nào... và cách lấy thông tin đường pline ta vừa vẽ là thế nào..! chúc bạn mọi điều may mắn, vui vẻ và thành công...goodluck.. :) 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 3912 Báo cáo bài đăng Đã đăng Tháng 7 3, 2014 thks bạn nhiều... vậy bạn cho m hỏi là m muốn lấy toạ độ từng điểm khi mình dùng hàm getpoint và pick trên màn hình autocad là thế nào... và cách lấy thông tin đường pline ta vừa vẽ là thế nào..! chúc bạn mọi điều may mắn, vui vẻ và thành công...goodluck.. :) 1./ Hàm (getpoint) đã cho phép người sử dụng pick điểm trên CAD và lấy tọa độ điểm đó 2./ Cách lấy thông tin đường Pline vừa vẽ Hàm (entlast) -> Trả về ename của đối tượng vừa vẽ (entget(entlast)) -> lấy thông tin của đối tượng vừa vẽ ra 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
Tot77 508 Báo cáo bài đăng Đã đăng Tháng 7 3, 2014 Khi dùng hàm getpoint thì nó trả về 1 list có dạng (x y z), bạn muốn lấy x thí dùng hàm car, lấy y = hàm cadr, lấy z = hàm caddr; hoặc đơn giản hơn thì dùng (nth 0 pt) cho x, thay = 1 cho y, 2 cho z. Pline khi vẽ như trên thí bạn nhét list (x y z) vào trong 1 cái list khác bằng hàm cons hay append. Bạn bật help của lisp có ví dụ cách dùng hàm. 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
DesignAutoLisp 0 Báo cáo bài đăng Đã đăng Tháng 7 3, 2014 thks cả nhà............. chúc mọi người buổi tối vve...:) 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
DesignAutoLisp 0 Báo cáo bài đăng Đã đăng Tháng 7 3, 2014 anh Tuệ ơi anh cho e hỏi chút về thiết kế Dialog trong autolisp 1./ Hàm (getpoint) đã cho phép người sử dụng pick điểm trên CAD và lấy tọa độ điểm đó 2./ Cách lấy thông tin đường Pline vừa vẽ Hàm (entlast) -> Trả về ename của đối tượng vừa vẽ (entget(entlast)) -> lấy thông tin của đối tượng vừa vẽ ra do la khi e viet lap trinh bang dcl cho autolisp thi moi viet bang nen cua notepad hay bang visual lisp, viết bằng cả 2 nền đó thì thấy bất tiện ở chỗ kiểm tra đóng ngoặc, mở ngoặc đó "{ }" và không biết câu lệnh bị sai hay không ví dụ sai các tù khóa như: column, row, hoac key hay label....... mong mọi người chỉ giáo thksssssss........... 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