Chuyển đến nội dung
Diễn đàn CADViet
anhbr

vướng mắc autolisp tìm lời giải đáp

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

Chào các anh trên diễn đàn!

E mới bắt đầu tập viết lisp.

E có một vướng mắc mà e tìm lời giải đáp chưa được mong các anh giải đáp hộ

E có một đoạn lisp thế này:

(defun c:H ( )

(prompt "\nNew dim method. ")

; (command "LAYER" "N" "Laydim" "C" "2" "Laydim" "")

; (command "LAYER" "S" "Laydim" "")

(setq pt1 (getpoint "\nSelect first extension line origin : ")

pt2 (getpoint "\nSelect second extension line origin : " pt1)

)

(if (= (car pt1) (car pt2))

(VER pt1 pt2)

(HOR pt1 pt2)

)

)

và e không hiểu chỗ lệnh (VER pt1 pt2) và lệnh (HOR pt1 pt2) là gán biển hay thế nào ah?

Cảm ơn diễn đàn!

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

Chắc hẳn lisp của bạn đã bị thiếu code, trong autolisp đoạn mã (ver pt1 pt2) (hor pt1 pt2) không có ý nghĩa gì cả, khi chạy cad sẽ báo lỗi. ver hay hor là lệnh đi kèm theo lệnh vẽ đường xline hoặc construction Line để xác định xem đường thẳng đó nằm thẳng đứng hay nằm ngang.

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
Chào các anh trên diễn đàn!

E mới bắt đầu tập viết lisp.

E có một vướng mắc mà e tìm lời giải đáp chưa được mong các anh giải đáp hộ

E có một đoạn lisp thế này:

(defun c:H ( )

(prompt "\nNew dim method. ")

; (command "LAYER" "N" "Laydim" "C" "2" "Laydim" "")

; (command "LAYER" "S" "Laydim" "")

(setq pt1 (getpoint "\nSelect first extension line origin : ")

pt2 (getpoint "\nSelect second extension line origin : " pt1)

)

(if (= (car pt1) (car pt2))

(VER pt1 pt2)

(HOR pt1 pt2)

)

)

và e không hiểu chỗ lệnh (VER pt1 pt2) và lệnh (HOR pt1 pt2) là gán biển hay thế nào ah?

Cảm ơn diễn đàn!

đoạn lisp này lỗ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
đoạn lisp này lỗi

anh biết là bị lỗi thì phải sửa luôn đi chứ. Nếu chỉ nói thì cũng chưa hiệu quả lắ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
Chào các anh trên diễn đàn!

E mới bắt đầu tập viết lisp.

E có một vướng mắc mà e tìm lời giải đáp chưa được mong các anh giải đáp hộ

E có một đoạn lisp thế này:

(defun c:H ( )

(prompt "\nNew dim method. ")

; (command "LAYER" "N" "Laydim" "C" "2" "Laydim" "")

; (command "LAYER" "S" "Laydim" "")

(setq pt1 (getpoint "\nSelect first extension line origin : ")

pt2 (getpoint "\nSelect second extension line origin : " pt1)

)

(if (= (car pt1) (car pt2))

(VER pt1 pt2)

(HOR pt1 pt2)

)

)

và e không hiểu chỗ lệnh (VER pt1 pt2) và lệnh (HOR pt1 pt2) là gán biển hay thế nào ah?

Cảm ơn diễn đàn!

theo tui nghĩ thì ở phía trên đoạn code nầy còn có 2 hàm con là

(defun VER (var1 var2) -->có nghĩa là hàm VER này làm việc với 2 biến var1 và var2

...

)

(defun HOR (var1 var2)

...

)

khi hàm chính là hàm (defun c:H()) làm việc có gọi lại 2 hàm con như ở trên. lúc này 2 biến pt1 và pt2 ở hàm chính sẽ dc thay vào 2 biến var1 và var2 để 2 hàm con tính toán.

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

Mình thấy bạn lp_hai nói có lý, khả năng ver và hor là 2 hàm con hoặc là bạn lisp đã bị sửa đổi, bạn về kiểm tra lại xem còn hàm con nào trong lisp không?

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
Mình thấy bạn lp_hai nói có lý, khả năng ver và hor là 2 hàm con hoặc là bạn lisp đã bị sửa đổi, bạn về kiểm tra lại xem còn hàm con nào trong lisp không?

không đâu bạn à.

Lisp này là mình lấy nguyên bản vậy đó, đây là file gốc http://www.mediafire.com/myfiles.php

Load vẫn chạy bình thường.

Mình đang tập viết lisp nên lấy đoạn lisp này ra tìm hiểu về các lệnh,tự dưng thấy vậy khó hiểu quá. Do cũng chưa am tường về lisp nên cũng chưa hiểu rõ lỗi này nữa. Hay cũng có thể lệnh đó (ver.....hor...) không ảnh hưởng gì đến quá trình chạy lisp này chăng?

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
không đâu bạn à.

Lisp này là mình lấy nguyên bản vậy đó, đây là file gốc http://www.mediafire.com/myfiles.php

Load vẫn chạy bình thường.

Mình đang tập viết lisp nên lấy đoạn lisp này ra tìm hiểu về các lệnh,tự dưng thấy vậy khó hiểu quá. Do cũng chưa am tường về lisp nên cũng chưa hiểu rõ lỗi này nữa. Hay cũng có thể lệnh đó (ver.....hor...) không ảnh hưởng gì đến quá trình chạy lisp này chăng?

bạn phải copy cái đường dẫn của file bạn upload kia. chú link đó là dến thư mục upload của riêng bạn mà, sao tải dc.

nhưng mình chắc chắn VER và HOR là 2 hàm con. bạn thử mở lisp đó bằng notepad rồi dùng chế độ find (ctrl+F) tìm defun VER thử xem có ko??

bởi vì bạn xem kỹ lại các đoạn code trong hàm Defun C:H() ko hề có một lệnh nào đẻ thực thi theo ý của người vẽ. như vậy lệnh để bạn vẽ chắc chắn là nằm trong 2 hàm con đó.

hàm con ko nhất thiết phải nằm cùng một file với hàm chính. nó có thể nằm ở một lisp khác, miễn sao nó dc load để khi gọi nó thực hiện là dc.

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
không đâu bạn à.

Lisp này là mình lấy nguyên bản vậy đó, đây là file gốc http://www.mediafire.com/myfiles.php

Load vẫn chạy bình thường.

Mình đang tập viết lisp nên lấy đoạn lisp này ra tìm hiểu về các lệnh,tự dưng thấy vậy khó hiểu quá. Do cũng chưa am tường về lisp nên cũng chưa hiểu rõ lỗi này nữa. Hay cũng có thể lệnh đó (ver.....hor...) không ảnh hưởng gì đến quá trình chạy lisp này chăng?

mình gửi một lisp này làm vd nha

(defun veline(A :(
 (command "line" A B "")
 )

(defun c:cheo()
 (setq Rec (acet-geom-vertex-list (car (entsel "Chon hinh chu nhat")))
     PT1 (nth 0 Rec)
     PT2 (nth 1 Rec)
     PT3 (nth 2 Rec)
     PT4 (nth 3 Rec)
     )
 (veline PT1 PT3)
 (veline PT2 PT4)
 )

lisp này vẽ đường chéo một hinh chữ nhậ có sẵn. như bạn thấy ở hàm chính là hàm defun C:cheo() ko hề có lệnh vẽ line nào. còn ở hàm con là (defun veline(A :undecided: có 2 biến là A và B

khi ở hàm chính gọi hàm con (veline PT1 PT3) thì hàm con sẽ làm việc với 2 tham số thế vào là PT1 và PT3 (là vẽ line từ điểm A(khi này là pt1) đến diểm B(là pt2) )

tương tự như vậy cho lần gọi sau...

hy vọng giúp ích dc cho bạn!

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
mình gửi một lisp này làm vd nha

(defun veline(A :(
 (command "line" A B "")
 )

(defun c:cheo()
 (setq Rec (acet-geom-vertex-list (car (entsel "Chon hinh chu nhat")))
     PT1 (nth 0 Rec)
     PT2 (nth 1 Rec)
     PT3 (nth 2 Rec)
     PT4 (nth 3 Rec)
     )
 (veline PT1 PT3)
 (veline PT2 PT4)
 )

lisp này vẽ đường chéo một hinh chữ nhật có sẵn. như bạn thấy ở hàm chính là hàm defun C:cheo() ko hề có lệnh vẽ line nào. còn ở hàm con là (defun veline(A :undecided: có 2 biến là A và B

khi ở hàm chính gọi hàm con (veline PT1 PT3) thì hàm con sẽ làm việc với 2 tham số thế vào là PT1 và PT3 (là vẽ line từ điểm A(khi này là pt1) đến diểm B(là pt2) )

tương tự như vậy cho lần gọi sau...

hy vọng giúp ích dc cho bạn!

Bạn nêu chưa đủ ý lắm.

Lisp sẽ vẽ đường chéo của 1 tứ giác bất kì, trong đó có hình thang, hình bình hành, hình chữ nhật, hình thoi, hình vuông nữa

Bạn nên đưa thêm vào điều kiện kiểm tra đa tuyến đó có kín hay không, đa tuyến đó có 4 đỉnh hay không?

Nếu chỉ viết cho hình chữ nhật (hình vuông là trường hợp đặc biệt của hình chữ nhật) thì phải kiểm tra xem 3 góc của hình chữ nhật có bằng 90độ hay không?

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 nêu chưa đủ ý lắm.

Lisp sẽ vẽ đường chéo của 1 tứ giác bất kì, trong đó có hình thang, hình bình hành, hình chữ nhật, hình thoi, hình vuông nữa

Bạn nên đưa thêm vào điều kiện kiểm tra đa tuyến đó có kín hay không, đa tuyến đó có 4 đỉnh hay không?

Nếu chỉ viết cho hình chữ nhật (hình vuông là trường hợp đặc biệt của hình chữ nhật) thì phải kiểm tra xem 3 góc của hình chữ nhật có bằng 90độ hay không?

hehê!

chào bác Tue.

em chỉ VD để giải thích cho bạn anhbr về cái hàm con thôi bác ah!

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
hehê!

chào bác Tue.

em chỉ VD để giải thích cho bạn anhbr về cái hàm con thôi bác ah!

Mình biết bạn ví dụ chứ.

Nhưng khi đã viết hoặc nêu 1 vấn đề nào đó thì nên viết hoặc nêu cho Tổng Quát bạn à

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
Có 1 ý nhỏ thế này ko biết có làm Tue_NV khó chịu ko. Bạn ngày càng khó tính rồi đó không phải ai cũng như mình được vậy.

Bài này sẽ được del vào cuối buổi chiều này. Bạn không cần trả lời vậy.

Cũng có thể do Tue_NV hơi khó tính. Tue_NV chỉ góp ý thôi mà

Xin lỗi các bạn vì đã làm cho các bạn không được vui. Sorry

Còn chuyện del bai của anh thì không nên vì em đã quote bài của anh rồi. Anh muốn del cũng không được. Hì hì

  • 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

Đúng rồi các bác ah, trong đoạn lisp có hàm con của VER và HOR

Đúng là có hàm con defun VER (...) và defun HOR (...) ở phần dưới của đoạn lisp. cảm ơn bác lp_hai và các bác nhiều.

Như vậy trong câu lệnh (VER pt1 pt2) và lệnh (HOR pt1 pt2) là thế nào nhỉ, thực sự e vẫn chưa hiểu rõ lắm về 2 câu lệnh này

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
Đúng rồi các bác ah, trong đoạn lisp có hàm con của VER và HOR

Đúng là có hàm con defun VER (...) và defun HOR (...) ở phần dưới của đoạn lisp. cảm ơn bác lp_hai và các bác nhiều.

Như vậy trong câu lệnh (VER pt1 pt2) và lệnh (HOR pt1 pt2) là thế nào nhỉ, thực sự e vẫn chưa hiểu rõ lắm về 2 câu lệnh này

bạn đọc lại bài số 9 nha! mình nói cũng rõ lắm mà.

hiiiiiiiiiiiii

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
Các bác ơi. Em muốn dùng lisp sau cho Bv2 thì làm thế nào, BV1 e dùng thì OK

http://www.cadviet.com/upfiles/3/bv1_1.dwg

http://www.cadviet.com/upfiles/3/bv2_1.dwg

http://www.cadviet.com/upfiles/3/nscd.rar

Mong các bác giúp đỡ

đường dẫn thứ 3 là j vậy bạn. lisp hả. mình tải ko dc. "Em muốn dùng lisp sau cho Bv2 thì làm thế nào, BV1 e dùng thì OK" ý bạn là sao??

bạn hỏi về cách sữ dụng lisp đó cho bv2 hay là cái lisp đó ở bv2 nó ko hiểu.

nếu như trường hợp thứ nhất bạn nên nêu rõ hơn yêu cầu của mình: như mục đích của lisp đó để làm gì?...

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

;TINH CAO DO NHAP KHOANG CACH VA VIET VAO DIEM CHON

(defun c:tinh ()

(setvar "osmode" 33)

(initget 3)

(setq pt1 (getpoint "\nChon diem co cao do: " ))

(setq pt2 (getpoint "\nChon diem chon diem tim cao do: " pt1))

(setq pt3 (getpoint "\nChon diem viet k/c 2 diem: " ))

(setq pt6 (getpoint "\nChon diem viet cao do diem: " ))

(initget 0)

(setq pt4 (getreal "\nVao so cao do diem truoc:" ))

(setq dau1 (car pt1))

(setq cuoi1 (cadr pt1))

(setq dau2 (car pt2))

(setq cuoi2 (cadr pt2))

(setq l (abs (- dau1 dau2)))

(if ( > l ntl )

(command "text" "J" "M" pt3 height "0" (rtos (/ l ntl) 2 tphan))

(command "text" "J" "M" pt3 height "90" (rtos (/ l ntl) 2 tphan))

)

(command "text" "J" "M" pt6 height "90" (rtos (+ pt4 (/ (- cuoi2 cuoi1) ntl)) 2 tphan))

(setvar "osmode" luu)

(setq pt4 nil)

) ;het timcaodo

 

(defun c:nscd ()

(setq luu (getvar "osmode"))

(setq luublipmode (getvar "blipmode"))

(setvar "osmode" 33)

(setvar "blipmode" 0)

(initget 3)

(setq pt1 (getpoint "\nBam vao diem da biet cao do: " ))

(setq pt2 (getpoint "\nBam vao diem can tim cao do: " pt1))

(setvar "blipmode" 0)

(while (null (setq chon (entsel "\nChon so cao do diem truoc:"))))

(setq dt (entget (car chon)))

(setq loai (cdr (assoc 0 dt)))

(if (= loai "TEXT")

(progn

(setq gtri (cdr (assoc 1 dt)))

(if (null gtri) (princ "\nBan chon khong dung so")

(progn

(setq pt3 (atof gtri))

(setq pt4 (rtos (+ pt3 (/ (- (cadr pt2) (cadr pt1)) )) 2 tphan))

(setq pt5 (entsel "\nChon so ghi can sua so cao do diem noi suy:"))

(initget 0)

(if (null pt5)

(progn

(setq pt6 (getpoint "\nChon diem de the ghi cao do diem noi suy: " ))

(command "text" "J" "M" pt6 height "90" pt4)

)

(progn

(command ".change" pt5 "" "" "" "" (cdr (assoc 40 dt)) "" pt4)

(command ".change" pt5 "" "P" "C" "7" "")

)

)

)

)

)

(princ "\nBan chon nham khong phai la chu so.")

)

(princ "\n")

(setvar "osmode" luu)

(setvar "blipmode" luublipmode)

(setq chon nil gtri nil dt nil loai nil pt1 nil pt2 nil pt3 nil pt4 nil pt5 nil pt6 nil)

)

 

(defun c:copyso ()

(c:setupdesign)

(setq luu (getvar "osmode"))

(setq luublipmode (getvar "blipmode"))

(setvar "osmode" 33)

(setvar "blipmode" 1)

(initget 3)

(setvar "blipmode" 0)

(while (null (setq chon (entsel "\nChon so tren ban ve:"))))

(setq dt (entget (car chon)))

(setq loai (cdr (assoc 0 dt)))

(if (= loai "TEXT")

(progn

(setq gtri (cdr (assoc 1 dt)))

(if (null gtri) (princ "\nBan chon khong dung so")

(progn

(setq pt3 (atof gtri))

(setq pt5 (entsel "\nChon so ghi can sua so vua tinh:"))

(initget 0)

(if (null pt5)

(progn

(setq pt6 (getpoint "\nChon diem de the ghi so vua tinh: " ))

(command "text" "J" "M" pt6 height "90" (rtos pt3 2 tphan))

)

(progn

(command ".change" pt5 "" "" "" "" "" "" (rtos pt3 2 tphan))

(command ".change" pt5 "" "P" "C" "2" "")

)

)

)

)

)

(princ "\nBan chon nham khong phai la chu so.")

)

(princ "\n")

(setvar "osmode" luu)

(setvar "blipmode" luublipmode)

(setq chon nil gtri nil dt nil loai nil pt3 nil pt4 nil pt5 nil pt6 nil)

)

 

(defun c:sa ()

 

(setq luu (getvar "osmode"))

(setq luublipmode (getvar "blipmode"))

(setvar "osmode" 33)

(setvar "blipmode" 1)

(initget 3)

(setvar "blipmode" 0)

(while (null (setq chon (entsel "\nChon so tren ban ve:"))))

(setq dt (entget (car chon)))

(setq loai (cdr (assoc 0 dt)))

(if (= loai "TEXT")

(progn

(setq gtri (cdr (assoc 1 dt)))

(if (null gtri) (princ "\nBan chon khong dung so")

(progn

(setq pt3 (atof gtri))

(while (setq chon1 (entsel "\nChon so cong tren ban ve :"))

(setq pt4 (atof (cdr (assoc 1 (entget (car chon1))))))

(setq pt7 (+ pt3 (/ pt4 100)))

)

(setq pt5 (entsel "\nChon so ghi can sua so vua tinh:"))

(initget 0)

(if (null pt5)

(progn

(setq pt6 (getpoint "\nChon diem de the ghi so vua tinh: " ))

(command "text" "J" "M" pt6 height "90" (rtos pt7 2 tphan))

)

(progn

(command ".change" pt5 "" "" "" "" "" (rtos pt7 2 tphan))

(command ".change" pt5 "" "P" "C" "2" "")

)

)

)

)

)

(princ "\nBan chon nham khong phai la chu so.")

)

(princ "\n")

(setvar "osmode" luu)

(setvar "blipmode" luublipmode)

(setq chon nil gtri nil dt nil loai nil pt3 nil pt4 nil pt5 nil pt6 nil)

)

 

(defun c:truso ()

 

(setq luu (getvar "osmode"))

(setq luublipmode (getvar "blipmode"))

(setvar "osmode" 33)

(setvar "blipmode" 1)

(initget 3)

(setvar "blipmode" 0)

(while (null (setq chon (entsel "\nChon so tren ban ve:"))))

(setq dt (entget (car chon)))

(setq loai (cdr (assoc 0 dt)))

(if (= loai "TEXT")

(progn

(setq gtri (cdr (assoc 1 dt)))

(if (null gtri) (princ "\nBan chon khong dung so")

(progn

(setq pt3 (atof gtri))

(while (setq chon1 (entsel "\nChon so de tru tren ban ve :"))

(setq pt4 (atof (cdr (assoc 1 (entget (car chon1))))))

(setq pt3 (- pt3 pt4))

)

(setq pt5 (entsel "\nChon so ghi can sua so vua tinh:"))

(initget 0)

(if (null pt5)

(progn

(setq pt6 (getpoint "\nChon diem de the ghi so vua tinh: " ))

(command "text" "J" "M" pt6 height "90" (rtos pt3 2 tphan))

)

(progn

(command ".change" pt5 "" "" "" "" (cdr (assoc 40 dt)) "" (rtos pt3 2 tphan))

(command ".change" pt5 "" "P" "C" "2" "")

)

)

)

)

)

(princ "\nBan chon nham khong phai la chu so.")

)

(princ "\n")

(setvar "osmode" luu)

(setvar "blipmode" luublipmode)

(setq chon nil gtri nil dt nil loai nil pt3 nil pt4 nil pt5 nil pt6 nil)

)

 

(defun c:nhanso ()

(c:setupdesign)

(setq luu (getvar "osmode"))

(setq luublipmode (getvar "blipmode"))

(setvar "osmode" 33)

(setvar "blipmode" 1)

(initget 3)

(setvar "blipmode" 0)

(while (null (setq chon (entsel "\nChon so tren ban ve:"))))

(setq dt (entget (car chon)))

(setq loai (cdr (assoc 0 dt)))

(if (= loai "TEXT")

(progn

(setq gtri (cdr (assoc 1 dt)))

(if (null gtri) (princ "\nBan chon khong dung so")

(progn

(setq pt3 (atof gtri))

(while (setq chon1 (entsel "\nChon so de nhan tren ban ve :"))

(setq pt4 (atof (cdr (assoc 1 (entget (car chon1))))))

(setq pt3 (* pt3 pt4))

)

(setq pt5 (entsel "\nChon so ghi can sua so cao do diem noi suy:"))

(initget 0)

(if (null pt5)

(progn

(setq pt6 (getpoint "\nChon diem de the ghi tich so vua nhan: " ))

(command "text" "J" "M" pt6 height "90" (rtos pt3 2 tphan))

)

(progn

(command ".change" pt5 "" "" "" "" (cdr (assoc 40 dt)) "" (rtos pt3 2 tphan))

(command ".change" pt5 "" "P" "C" "2" "")

)

)

)

)

)

(princ "\nBan chon nham khong phai la chu so.")

)

(princ "\n")

(setvar "osmode" luu)

(setvar "blipmode" luublipmode)

(setq chon nil gtri nil dt nil loai nil pt3 nil pt4 nil pt5 nil pt6 nil)

)

 

(defun c:chiaso ()

(c:setupdesign)

(setq luu (getvar "osmode"))

(setq luublipmode (getvar "blipmode"))

(setvar "osmode" 33)

(setvar "blipmode" 1)

(initget 3)

(setvar "blipmode" 0)

(while (null (setq chon (entsel "\nChon so tren ban ve de chia:"))))

(setq dt (entget (car chon)))

(setq loai (cdr (assoc 0 dt)))

(if (= loai "TEXT")

(progn

(setq gtri (cdr (assoc 1 dt)))

(if (null gtri) (princ "\nBan chon khong dung so")

(progn

(setq pt3 (atof gtri))

(while (setq chon1 (entsel "\nBam vao mau so de chia tren ban ve :"))

(setq pt4 (atof (cdr (assoc 1 (entget (car chon1))))))

(setq pt3 (/ pt3 pt4))

)

(setq pt5 (entsel "\nChon so ghi can sua so vua chia:"))

(initget 0)

(if (null pt5)

(progn

(setq pt6 (getpoint "\nChon diem de ghi so moi chia: " ))

(command "text" "J" "M" pt6 height "90" (rtos pt3 2 tphan))

)

(progn

(command ".change" pt5 "" "" "" "" (cdr (assoc 40 dt)) "" (rtos pt3 2 tphan))

(command ".change" pt5 "" "P" "C" "2" "")

)

)

)

)

)

(princ "\nBan chon nham khong phai la chu so.")

)

(princ "\n")

(setvar "osmode" luu)

(setvar "blipmode" luublipmode)

(setq chon nil gtri nil dt nil loai nil pt3 nil pt4 nil pt5 nil pt6 nil)

)

 

(defun c:phantram ()

(c:setupdesign)

(setq luu (getvar "osmode"))

(setq luublipmode (getvar "blipmode"))

(setvar "osmode" 33)

(setvar "blipmode" 1)

(initget 3)

(setvar "blipmode" 0)

(while (null (setq chon (entsel "\nChon so ghi tu so tren ban ve de chia:"))))

(setq dt (entget (car chon)))

(setq loai (cdr (assoc 0 dt)))

(if (= loai "TEXT")

(progn

(setq gtri (cdr (assoc 1 dt)))

(if (null gtri) (princ "\nBan chon khong dung so")

(progn

(setq pt3 (atof gtri))

(while (setq chon1 (entsel "\nBam vao mau so de chia tren ban ve :"))

(setq pt4 (atof (cdr (assoc 1 (entget (car chon1))))))

(setq pt3 (/ pt3 pt4))

)

(setq ptram (strcat (rtos (* pt3 100) 2 tphan) " %"))

(setq pt5 (entsel "\nChon so ghi can sua so vua tinh:"))

(initget 0)

(if (null pt5)

(progn

(setq pt6 (getpoint "\nChon diem de ghi so moi chia: " ))

(command "text" "J" "M" pt6 height "90" ptram)

)

(progn

(command ".change" pt5 "" "" "" "" (cdr (assoc 40 dt)) "" ptram)

(command ".change" pt5 "" "P" "C" "2" "")

)

)

)

)

)

(princ "\nBan chon nham khong phai la chu so.")

)

(princ "\n")

(setvar "osmode" luu)

(setvar "blipmode" luublipmode)

(setq chon nil gtri nil dt nil loai nil pt3 nil pt4 nil pt5 nil pt6 nil)

)

 

(defun c:tangheso ()

(c:setupdesign)

(setq luu (getvar "osmode"))

(setq luublipmode (getvar "blipmode"))

(setvar "osmode" 33)

(setvar "blipmode" 1)

(initget 3)

(setvar "blipmode" 0)

(while (null (setq chon (entsel "\nChon so ghi tu so tren ban ve de tang:"))))

(setq dt (entget (car chon)))

(setq loai (cdr (assoc 0 dt)))

(if (= loai "TEXT")

(progn

(setq gtri (cdr (assoc 1 dt)))

(if (null gtri) (princ "\nBan chon khong dung so")

(progn

(setq pt3 (atof gtri))

(setq ptram (strcat " " (rtos (* pt3 heso) 2 tphan)))

(command ".change" chon "" "" "" "" (cdr (assoc 40 dt)) "" ptram)

(command ".change" chon "" "P" "C" "2" "")

)

)

)

(princ "\nBan chon nham khong phai la chu so.")

)

(princ "\n")

(setvar "osmode" luu)

(setvar "blipmode" luublipmode)

(setq chon nil gtri nil dt nil loai nil pt3 nil pt4 nil pt5 nil pt6 nil)

)

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
;TINH CAO DO NHAP KHOANG CACH VA VIET VAO DIEM CHON

(defun c:tinh ()

(setvar "osmode" 33)

(initget 3)

(setq pt1 (getpoint "\nChon diem co cao do: " ))

(setq pt2 (getpoint "\nChon diem chon diem tim cao do: " pt1))

(setq pt3 (getpoint "\nChon diem viet k/c 2 diem: " ))

(setq pt6 (getpoint "\nChon diem viet cao do diem: " ))

(initget 0)

(setq pt4 (getreal "\nVao so cao do diem truoc:" ))

(setq dau1 (car pt1))

(setq cuoi1 (cadr pt1))

(setq dau2 (car pt2))

(setq cuoi2 (cadr pt2))

(setq l (abs (- dau1 dau2)))

(if ( > l ntl )

(command "text" "J" "M" pt3 height "0" (rtos (/ l ntl) 2 tphan))

(command "text" "J" "M" pt3 height "90" (rtos (/ l ntl) 2 tphan))

)

(command "text" "J" "M" pt6 height "90" (rtos (+ pt4 (/ (- cuoi2 cuoi1) ntl)) 2 tphan))

(setvar "osmode" luu)

(setq pt4 nil)

) ;het timcaodo

 

(defun c:nscd ()

(setq luu (getvar "osmode"))

(setq luublipmode (getvar "blipmode"))

(setvar "osmode" 33)

(setvar "blipmode" 0)

(initget 3)

(setq pt1 (getpoint "\nBam vao diem da biet cao do: " ))

(setq pt2 (getpoint "\nBam vao diem can tim cao do: " pt1))

(setvar "blipmode" 0)

(while (null (setq chon (entsel "\nChon so cao do diem truoc:"))))

(setq dt (entget (car chon)))

(setq loai (cdr (assoc 0 dt)))

(if (= loai "TEXT")

(progn

(setq gtri (cdr (assoc 1 dt)))

(if (null gtri) (princ "\nBan chon khong dung so")

(progn

(setq pt3 (atof gtri))

(setq pt4 (rtos (+ pt3 (/ (- (cadr pt2) (cadr pt1)) )) 2 tphan))

(setq pt5 (entsel "\nChon so ghi can sua so cao do diem noi suy:"))

(initget 0)

(if (null pt5)

(progn

(setq pt6 (getpoint "\nChon diem de the ghi cao do diem noi suy: " ))

(command "text" "J" "M" pt6 height "90" pt4)

)

(progn

(command ".change" pt5 "" "" "" "" (cdr (assoc 40 dt)) "" pt4)

(command ".change" pt5 "" "P" "C" "7" "")

)

)

)

)

)

(princ "\nBan chon nham khong phai la chu so.")

)

(princ "\n")

(setvar "osmode" luu)

(setvar "blipmode" luublipmode)

(setq chon nil gtri nil dt nil loai nil pt1 nil pt2 nil pt3 nil pt4 nil pt5 nil pt6 nil)

)

 

(defun c:copyso ()

(c:setupdesign)

(setq luu (getvar "osmode"))

(setq luublipmode (getvar "blipmode"))

(setvar "osmode" 33)

(setvar "blipmode" 1)

(initget 3)

(setvar "blipmode" 0)

(while (null (setq chon (entsel "\nChon so tren ban ve:"))))

(setq dt (entget (car chon)))

(setq loai (cdr (assoc 0 dt)))

(if (= loai "TEXT")

(progn

(setq gtri (cdr (assoc 1 dt)))

(if (null gtri) (princ "\nBan chon khong dung so")

(progn

(setq pt3 (atof gtri))

(setq pt5 (entsel "\nChon so ghi can sua so vua tinh:"))

(initget 0)

(if (null pt5)

(progn

(setq pt6 (getpoint "\nChon diem de the ghi so vua tinh: " ))

(command "text" "J" "M" pt6 height "90" (rtos pt3 2 tphan))

)

(progn

(command ".change" pt5 "" "" "" "" "" "" (rtos pt3 2 tphan))

(command ".change" pt5 "" "P" "C" "2" "")

)

)

)

)

)

(princ "\nBan chon nham khong phai la chu so.")

)

(princ "\n")

(setvar "osmode" luu)

(setvar "blipmode" luublipmode)

(setq chon nil gtri nil dt nil loai nil pt3 nil pt4 nil pt5 nil pt6 nil)

)

 

(defun c:sa ()

 

(setq luu (getvar "osmode"))

(setq luublipmode (getvar "blipmode"))

(setvar "osmode" 33)

(setvar "blipmode" 1)

(initget 3)

(setvar "blipmode" 0)

(while (null (setq chon (entsel "\nChon so tren ban ve:"))))

(setq dt (entget (car chon)))

(setq loai (cdr (assoc 0 dt)))

(if (= loai "TEXT")

(progn

(setq gtri (cdr (assoc 1 dt)))

(if (null gtri) (princ "\nBan chon khong dung so")

(progn

(setq pt3 (atof gtri))

(while (setq chon1 (entsel "\nChon so cong tren ban ve :"))

(setq pt4 (atof (cdr (assoc 1 (entget (car chon1))))))

(setq pt7 (+ pt3 (/ pt4 100)))

)

(setq pt5 (entsel "\nChon so ghi can sua so vua tinh:"))

(initget 0)

(if (null pt5)

(progn

(setq pt6 (getpoint "\nChon diem de the ghi so vua tinh: " ))

(command "text" "J" "M" pt6 height "90" (rtos pt7 2 tphan))

)

(progn

(command ".change" pt5 "" "" "" "" "" (rtos pt7 2 tphan))

(command ".change" pt5 "" "P" "C" "2" "")

)

)

)

)

)

(princ "\nBan chon nham khong phai la chu so.")

)

(princ "\n")

(setvar "osmode" luu)

(setvar "blipmode" luublipmode)

(setq chon nil gtri nil dt nil loai nil pt3 nil pt4 nil pt5 nil pt6 nil)

)

 

(defun c:truso ()

 

(setq luu (getvar "osmode"))

(setq luublipmode (getvar "blipmode"))

(setvar "osmode" 33)

(setvar "blipmode" 1)

(initget 3)

(setvar "blipmode" 0)

(while (null (setq chon (entsel "\nChon so tren ban ve:"))))

(setq dt (entget (car chon)))

(setq loai (cdr (assoc 0 dt)))

(if (= loai "TEXT")

(progn

(setq gtri (cdr (assoc 1 dt)))

(if (null gtri) (princ "\nBan chon khong dung so")

(progn

(setq pt3 (atof gtri))

(while (setq chon1 (entsel "\nChon so de tru tren ban ve :"))

(setq pt4 (atof (cdr (assoc 1 (entget (car chon1))))))

(setq pt3 (- pt3 pt4))

)

(setq pt5 (entsel "\nChon so ghi can sua so vua tinh:"))

(initget 0)

(if (null pt5)

(progn

(setq pt6 (getpoint "\nChon diem de the ghi so vua tinh: " ))

(command "text" "J" "M" pt6 height "90" (rtos pt3 2 tphan))

)

(progn

(command ".change" pt5 "" "" "" "" (cdr (assoc 40 dt)) "" (rtos pt3 2 tphan))

(command ".change" pt5 "" "P" "C" "2" "")

)

)

)

)

)

(princ "\nBan chon nham khong phai la chu so.")

)

(princ "\n")

(setvar "osmode" luu)

(setvar "blipmode" luublipmode)

(setq chon nil gtri nil dt nil loai nil pt3 nil pt4 nil pt5 nil pt6 nil)

)

 

(defun c:nhanso ()

(c:setupdesign)

(setq luu (getvar "osmode"))

(setq luublipmode (getvar "blipmode"))

(setvar "osmode" 33)

(setvar "blipmode" 1)

(initget 3)

(setvar "blipmode" 0)

(while (null (setq chon (entsel "\nChon so tren ban ve:"))))

(setq dt (entget (car chon)))

(setq loai (cdr (assoc 0 dt)))

(if (= loai "TEXT")

(progn

(setq gtri (cdr (assoc 1 dt)))

(if (null gtri) (princ "\nBan chon khong dung so")

(progn

(setq pt3 (atof gtri))

(while (setq chon1 (entsel "\nChon so de nhan tren ban ve :"))

(setq pt4 (atof (cdr (assoc 1 (entget (car chon1))))))

(setq pt3 (* pt3 pt4))

)

(setq pt5 (entsel "\nChon so ghi can sua so cao do diem noi suy:"))

(initget 0)

(if (null pt5)

(progn

(setq pt6 (getpoint "\nChon diem de the ghi tich so vua nhan: " ))

(command "text" "J" "M" pt6 height "90" (rtos pt3 2 tphan))

)

(progn

(command ".change" pt5 "" "" "" "" (cdr (assoc 40 dt)) "" (rtos pt3 2 tphan))

(command ".change" pt5 "" "P" "C" "2" "")

)

)

)

)

)

(princ "\nBan chon nham khong phai la chu so.")

)

(princ "\n")

(setvar "osmode" luu)

(setvar "blipmode" luublipmode)

(setq chon nil gtri nil dt nil loai nil pt3 nil pt4 nil pt5 nil pt6 nil)

)

 

(defun c:chiaso ()

(c:setupdesign)

(setq luu (getvar "osmode"))

(setq luublipmode (getvar "blipmode"))

(setvar "osmode" 33)

(setvar "blipmode" 1)

(initget 3)

(setvar "blipmode" 0)

(while (null (setq chon (entsel "\nChon so tren ban ve de chia:"))))

(setq dt (entget (car chon)))

(setq loai (cdr (assoc 0 dt)))

(if (= loai "TEXT")

(progn

(setq gtri (cdr (assoc 1 dt)))

(if (null gtri) (princ "\nBan chon khong dung so")

(progn

(setq pt3 (atof gtri))

(while (setq chon1 (entsel "\nBam vao mau so de chia tren ban ve :"))

(setq pt4 (atof (cdr (assoc 1 (entget (car chon1))))))

(setq pt3 (/ pt3 pt4))

)

(setq pt5 (entsel "\nChon so ghi can sua so vua chia:"))

(initget 0)

(if (null pt5)

(progn

(setq pt6 (getpoint "\nChon diem de ghi so moi chia: " ))

(command "text" "J" "M" pt6 height "90" (rtos pt3 2 tphan))

)

(progn

(command ".change" pt5 "" "" "" "" (cdr (assoc 40 dt)) "" (rtos pt3 2 tphan))

(command ".change" pt5 "" "P" "C" "2" "")

)

)

)

)

)

(princ "\nBan chon nham khong phai la chu so.")

)

(princ "\n")

(setvar "osmode" luu)

(setvar "blipmode" luublipmode)

(setq chon nil gtri nil dt nil loai nil pt3 nil pt4 nil pt5 nil pt6 nil)

)

 

(defun c:phantram ()

(c:setupdesign)

(setq luu (getvar "osmode"))

(setq luublipmode (getvar "blipmode"))

(setvar "osmode" 33)

(setvar "blipmode" 1)

(initget 3)

(setvar "blipmode" 0)

(while (null (setq chon (entsel "\nChon so ghi tu so tren ban ve de chia:"))))

(setq dt (entget (car chon)))

(setq loai (cdr (assoc 0 dt)))

(if (= loai "TEXT")

(progn

(setq gtri (cdr (assoc 1 dt)))

(if (null gtri) (princ "\nBan chon khong dung so")

(progn

(setq pt3 (atof gtri))

(while (setq chon1 (entsel "\nBam vao mau so de chia tren ban ve :"))

(setq pt4 (atof (cdr (assoc 1 (entget (car chon1))))))

(setq pt3 (/ pt3 pt4))

)

(setq ptram (strcat (rtos (* pt3 100) 2 tphan) " %"))

(setq pt5 (entsel "\nChon so ghi can sua so vua tinh:"))

(initget 0)

(if (null pt5)

(progn

(setq pt6 (getpoint "\nChon diem de ghi so moi chia: " ))

(command "text" "J" "M" pt6 height "90" ptram)

)

(progn

(command ".change" pt5 "" "" "" "" (cdr (assoc 40 dt)) "" ptram)

(command ".change" pt5 "" "P" "C" "2" "")

)

)

)

)

)

(princ "\nBan chon nham khong phai la chu so.")

)

(princ "\n")

(setvar "osmode" luu)

(setvar "blipmode" luublipmode)

(setq chon nil gtri nil dt nil loai nil pt3 nil pt4 nil pt5 nil pt6 nil)

)

 

(defun c:tangheso ()

(c:setupdesign)

(setq luu (getvar "osmode"))

(setq luublipmode (getvar "blipmode"))

(setvar "osmode" 33)

(setvar "blipmode" 1)

(initget 3)

(setvar "blipmode" 0)

(while (null (setq chon (entsel "\nChon so ghi tu so tren ban ve de tang:"))))

(setq dt (entget (car chon)))

(setq loai (cdr (assoc 0 dt)))

(if (= loai "TEXT")

(progn

(setq gtri (cdr (assoc 1 dt)))

(if (null gtri) (princ "\nBan chon khong dung so")

(progn

(setq pt3 (atof gtri))

(setq ptram (strcat " " (rtos (* pt3 heso) 2 tphan)))

(command ".change" chon "" "" "" "" (cdr (assoc 40 dt)) "" ptram)

(command ".change" chon "" "P" "C" "2" "")

)

)

)

(princ "\nBan chon nham khong phai la chu so.")

)

(princ "\n")

(setvar "osmode" luu)

(setvar "blipmode" luublipmode)

(setq chon nil gtri nil dt nil loai nil pt3 nil pt4 nil pt5 nil pt6 nil)

)

Trên đây là toàn bộ lisp. Bác nào tìm hiểu chỉ giúp em cách dùng lisp này cái, có bv dùng được, có bản dùng không được

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

×