friendship293a 10 Báo cáo bài đăng Đã đăng Tháng 11 25, 2010 Em đang cần 3 lisp tính diện tích và nhân nhanh cụ thể là thế này 1. Lisp tính diện tích nhanh. đánh lệnh rồi chọn khung bo hoặc pick điểm enter chọn text ghi kết quả xong. 2. lisp nhân nhanh. chọn số thứ nhất rùi chọn số thứ 2 rùi chọn text ghi kết quả đơn giản không phải enter nhiều lần 3. Lisp tính diện tích và nhân.đánh lệnh rùi chọn khung bo hoặc pick điểm enter chọn sô cần nhân vào giá trị diện tích, chọn text ghi kết quả. EM đã tìm trên diễn đàn nhưng lisp chưa được như ý nên mong ai hiểu biết về lisp giúp đỡ ạ. Cảm ơn mọi ngườ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
phamngoctukts 715 Báo cáo bài đăng Đã đăng Tháng 11 25, 2010 Em đang cần 3 lisp tính diện tích và nhân nhanh cụ thể là thế này1. Lisp tính diện tích nhanh. đánh lệnh rồi chọn khung bo hoặc pick điểm enter chọn text ghi kết quả xong. 2. lisp nhân nhanh. chọn số thứ nhất rùi chọn số thứ 2 rùi chọn text ghi kết quả đơn giản không phải enter nhiều lần 3. Lisp tính diện tích và nhân.đánh lệnh rùi chọn khung bo hoặc pick điểm enter chọn sô cần nhân vào giá trị diện tích, chọn text ghi kết quả. EM đã tìm trên diễn đàn nhưng lisp chưa được như ý nên mong ai hiểu biết về lisp giúp đỡ ạ. Cảm ơn mọi người. Mình viết cái lõi lisp cho bạn. Còn thêm mắm thêm muối gì tì tuỳ bạn nhé. (defun c:nhant () (setq tn1 (atof (vla-get-textstring (vlax-ename->vla-object (car (entsel "\nChon text 1: ")))))) (setq tn2 (atof (vla-get-textstring (vlax-ename->vla-object (car (entsel "\nChon text 2: ")))))) (setq ent (entget (car (entsel "\nChon text ghi ket qua: ")))) (setq kq (* tn1 tn2)) (entmod (subst (cons 1 (rtos kq 2 3)) (assoc 1 ent) ent)) ) (defun c:dt () (setq p (getpoint "\nPick trong vung can tinh dien tich: ")) (setq txt (entget (car (entsel "\nChon text ghi ket qua: ")))) (setq nh (getreal "\nNhap so muon nhan voi dien tich: ")) (setq kq (* (dientich p) nh)) (entmod (subst (cons 1 (rtos kq 2 3)) (assoc 1 txt) txt)) ) (defun dientich ( pt /) (command "-boundary" pt "" (if (/= (getvar "cmdactive") 0) (command "") ) ) (setq el (entlast)) (if (= (cdr (assoc 0 (entget el))) "LWPOLYLINE") (progn (command "region" el "") (setq el (entlast)) ) ) (setq dt (vla-get-area (vlax-ename->vla-object el))) (command "undo" 1) dt ) 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
friendship293a 10 Báo cáo bài đăng Đã đăng Tháng 11 26, 2010 Code của bạn chạy rất tốt nhưng minhg mù tịt về lisp muốn sửa tí nhưng chẳng bít sửa thế nào. Đã giúp thì giúp cho chót hì hì cụ thể là 1. Lisp tính diện tích rùi ghi kết qủa trực tiếp vào 1 text có sẵn chưa có 2.Lisp nhân nhanh của bạn chạy rất tốt không chê vào đâu được hì hì 3. Lisp tính diện tích rùi nhân và ghi kết quả thì text để nhân là text được chọn trên màn hình chứ không phải là nhập từ bàn phím Cảm ơn 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
phamngoctukts 715 Báo cáo bài đăng Đã đăng Tháng 11 26, 2010 Code của bạn chạy rất tốt nhưng minhg mù tịt về lisp muốn sửa tí nhưng chẳng bít sửa thế nào. Đã giúp thì giúp cho chót hì hì cụ thể là1. Lisp tính diện tích rùi ghi kết qủa trực tiếp vào 1 text có sẵn chưa có 2.Lisp nhân nhanh của bạn chạy rất tốt không chê vào đâu được hì hì 3. Lisp tính diện tích rùi nhân và ghi kết quả thì text để nhân là text được chọn trên màn hình chứ không phải là nhập từ bàn phím Cảm ơn bạn đã giúp đỡ Của bạn đây: (defun c:dt () (setq p (getpoint "\nPick trong vung can tinh dien tich: ")) (setq txt (entget (car (entsel "\nChon text ghi ket qua: ")))) (setq kq (dientich p)) (entmod (subst (cons 1 (rtos kq 2 3)) (assoc 1 txt) txt)) ) (defun c:nhant () (setq tn1 (atof (vla-get-textstring (vlax-ename->vla-object (car (entsel "\nChon text 1: ")))))) (setq tn2 (atof (vla-get-textstring (vlax-ename->vla-object (car (entsel "\nChon text 2: ")))))) (setq ent (entget (car (entsel "\nChon text ghi ket qua: ")))) (setq kq (* tn1 tn2)) (entmod (subst (cons 1 (rtos kq 2 3)) (assoc 1 ent) ent)) ) (defun c:dtn () (setq p (getpoint "\nPick trong vung can tinh dien tich: ")) (setq nh (atof (vla-get-textstring (vlax-ename->vla-object (car (entsel "\nChon text de nhan: ")))))) (setq txt (entget (car (entsel "\nChon text ghi ket qua: ")))) (setq kq (* (dientich p) nh)) (entmod (subst (cons 1 (rtos kq 2 3)) (assoc 1 txt) txt)) ) (defun dientich ( pt /) (command "-boundary" pt "" (if (/= (getvar "cmdactive") 0) (command "") ) ) (setq el (entlast)) (if (= (cdr (assoc 0 (entget el))) "LWPOLYLINE") (progn (command "region" el "") (setq el (entlast)) ) ) (setq dt (vla-get-area (vlax-ename->vla-object el))) (command "undo" 1) dt ) (vl-load-com) 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
friendship293a 10 Báo cáo bài đăng Đã đăng Tháng 11 26, 2010 Cảm ơn bạn. bạn viết Lisp quá siêu mình đã test không thể chê vào đâu được :leluoi: 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