.
Cảm ơn về bài viết hay
Đừng viết một bài mới với nội dung: bài trên hay quá, cảm ơn nhiều,…
  Liên hệTìm kiếmDownloadUploadLưu trữDiễn đànTrang tin

 
Các chủ đề trên diễn đàn


Viết Lisp theo yêu cầu
Bạn cần lisp ǵ post lên đây.


Mẹo sử dụng AutoCAD
có thể chưa biết


Những vấn đề cơ bản về Layout
Hướng dẫn cách sử dụng layout trong ACAD


Download Acad 2008
quá hấp dẫn không thể bỏ qua


Vẽ nhiều tỷ lệ trong một bản vẽ
Cách nào hay!


Sách học AutoCAD
bằng Tiếng Việt


Thế nào là một bản vẽ chuyên nghiệp
thoáng - gọn - dễ hiểu - đầy đủ


In bản vẽ trong AutoCAD
In ra giấy, in ra file ảnh, file nét...


Cùng nhau học SolidWorks
Một công cụ 3D tuyệt vời cho dân Cơ khí


Tiếng Việt trong AutoCAD
AutoCAD chuẩn không hề có!


Học AutoLisp
Thật là đơn giản


KHI TA GỬI ĐI 2 NỤ CƯỜI
một cho ta, một cho người


Viết lisp theo yêu cầu [phần 2]



Hatch
Hatch thật là phức tạp


Chuẩn khổ giấy A0,A1,... là Iso hay TCVN



Ảnh của thành viên



Mỗi ngày một câu chuyện cười
Tôi có thể cười bằng nhiều ngôn ngữ


Tính năng hay của Block
Block authoring Palettes,block thuộc tính!!


AutoCAD với Excel
Nhập xuất dữ liệu


Đố vui
mọi người thử sức


Phần mềm dành cho ngành Cấp thoát nước
Trao đổi và đóng góp.


Khoá file .dwg
Cay mũi chủ đầu tư lắm rồi !


Đố vui



1 ngày 2 câu hỏi tốt nghiệp!!!
Cùng nhau thảo luận nha (HOT)


Ứng dụng LISP để vẽ bản vẽ kiến trúc (phần cơ bản)
Lisp 4 newbie :D


Hỏi về lisp
Xin chỉ giúp


Video hướng dẫn học AutoCad 2007 và 2008
Từ cơ bản đến nâng cao


Đánh số thứ tự bằng lệnh Tcount
của Express Tools


Tài liệu phim học Revit tiếng Anh và tiếng Việt
15GB dữ liệu của Thế Hiệp


Bản đồ quy hoạch chi tiết thành phố Hà Nội
đến năm 2020

 

Trang: 0 1 2 3 4 > »
 

Viết Lisp theo yêu cầu, Bạn cần lisp ǵ post lên đây.


Nguyen Hoanh
Bạn có thể post yêu cầu về autolisp ở topic này.


ssg
Ḿnh thấy ở đây có khá nhiều bạn quan tâm đến lisp.
Mời các bạn tích cực tham gia đóng góp xây dựng bảng "Nội dung và cấu trúc chương tŕnh" của CadViet Utility.


abc007
Đọc bên trang tính tổng chiều dài các đoạn thẳng , tôi thấy rất hay và có ư tưởng thực tế trong công việc và muốn có 2 lisp nhằm 2 mục đích sau ( cho TKế đường ống cấp thoát nước ):
1. Ghi chú các đoạn ống ở giũa các đoạn ống( gồm : Đường kính ống - chiều dài - độ dốc ống )
2. Thống kê số lượng đường ống theo Đường kính và loại ống ( các loại thông dụng như PVC , Sắt tráng kẽm , ống BTCT , ống sành)
Hơn nữa chiều dài các đoạn ống có tính sẵn tṛn hao hụt luôn , cụ thể như ống BTCT mà tính bằng cm th́ khó chấp nhận , phải tính tṛn là m , c̣n các ống nhựa , sắt có cộng thêm hao hụt và làm tṛn cm.
H́nh kèm: ,Cám ơn các bạn
Tôi cũng viết thử nhưng chưa ngon lắm nhờ bác giúp sữa .
http://www.cadviet.com/sub/hupload.php?fok=Ong_nuoc_3.rar


ngagau
Nói ra ngại quá ... em là lính mới nên có bác nào chỉ em cách add LSP , VLX ... nhúng cào cad ko ...
Nhân tiện chỉ cho em cách dấu hay xóa cái ... à bấm f2 th́ hiện ra những tác vụ đă làm , muốn bản vẽ của ta không ai coppy được thí sao nhỉ ,,, h́ s_big.gif



duy782006
Nhờ các bác viết giúp cái hộp thoại cho cái lệnh này của em, có một số ư muốn như thế này:
-Cố gắng giữ nguyên các câu lệnh của em chỉ sửa những chổ cần thiết
-Dùng thuần lisp giúp em v́ em không biết VBA.
-H́nh dáng hộp thoại gồm:
+03 imagebutton thể hiện 03 loại thép h́nh.
+03 nút : Chèn tiêu đề; kẻ bảng; chọn và hủy bỏ.
-Hộp thoại dùng các file: SLD rời đừng gộp chung lại (để em c̣n phát triển).
-Khi chọn 1 ảnh song bấm enter th́ thực thi giống như chọn nút ok.
-Nhớ vị trí ảnh chọn ở lần gọi lệnh sau.
-Mổi ảnh và nút có thể chọn bằng chử ở bàn phím.
-Tạo giúp em cái ṿng lặp khi thực hiện xong lệnh sẽ tiếp tục quay lại.
Cảm ơn các bác nhiều.

CODE


(Defun C:tkth ( )
(setvar "MODEMACRO" "THONG KE THEP HINH")
(command "-style" "thep" "VNI-HELVE" "0" "1" "0" "n" "n")
(setq lc (strcase (getstring "\nCac lua chon :Tieu de/Ke khung/thepVuong/thepL/thepC:")))
(if (= lc "t")
(progn
(setq a (getpoint "\nChon diem tren ben trai: "))
(setq x (car a))
(setq y (cadr a))
(luuos)
(setvar "osmode" 0)
(command "INSERT" "tieudel" (list (+ x 0)(- y 0)) 1 1 0)
(command "-layer" "new" "Cat-20" "color" "20" "cat-20" "")
(command "-layer" "set" "Cat-20" "")
(command "LINE"(list (+ x 0) (- y 1500)) (list (+ x 0) (+ y 0)) (list (+ x 13214) (+ y 0)) (list (+ x 13214) (- y 1500)) "")
(traos)

)
)
(if (= lc "T")
(progn
(setq a (getpoint "\nChon diem tren ben trai: "))
(setq x (car a))
(setq y (cadr a))
(luuos)
(setvar "osmode" 0)
(command "INSERT" "tieudel" (list (+ x 0)(- y 0)) 1 1 0)
(command "-layer" "new" "Cat-20" "color" "20" "cat-20" "")
(command "-layer" "set" "Cat-20" "")
(command "LINE"(list (+ x 0) (- y 1500)) (list (+ x 0) (+ y 0)) (list (+ x 13214) (+ y 0)) (list (+ x 13214) (- y 1500)) "")
(traos)

)
)
(if (= lc "k")
(progn
(command "-style" "thep" "VNI-HELVE" "0" "1" "0" "n" "n")
(setq a (getpoint "\nChon diem tren ben trai: "))
(setq x (car a))
(setq y (cadr a))
(luuos)
(setvar "osmode" 0)
(command "-layer" "new" "Cat-20" "color" "20" "cat-20" "")
(setq s (getreal "\nSo luong hang: "))
(setq h (* s 600))
(setq z (* s 300))
(command "-layer" "set" "Cat-20" "")
(command "LINE"(list (+ x 0) (- y 0)) (list (+ x 0) (- y h)) "")
(command "LINE"(list (+ x 13214) (- y 0)) (list (+ x 13214) (- y h)) "")
(traos)
(luuos)
(setvar "osmode" 0)
(command "LINE"(list (+ x 2000) (- y 0)) (list (+ x 2000) (- y h)) "")
(command "LINE"(list (+ x 4925) (- y 0)) (list (+ x 4925) (- y h)) "")
(command "LINE"(list (+ x 7261) (- y 0)) (list (+ x 7261) (- y h)) "")
(command "LINE"(list (+ x 8610) (- y 0)) (list (+ x 8610) (- y h)) "")
(command "LINE"(list (+ x 11214) (- y 0)) (list (+ x 11214) (- y h)) "")
(command "LINE"(list (+ x 1200) (- y 0)) (list (+ x 1200) (- y h)) "")
(command "TRIM" "last" "" "f" (list (+ x 1) (- y 1)) (list (+ x 1) (+ (- y h) 1)) "" "")
(command "INSERT" "vitrichuthep" (list (+ x 950)(- y z)) 1 1 90)
(setq w (getstring 5"\nSo luong cau kien : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 950)(- y z)) 250 90 "( CK)")
(command "TEXT" "c" (list (+ x 950)(- y z 250)) 250 90 w)
;(command "INSERT" "vitrichuthep" (list (+ x 500)(- y z)) 1 1 90)
(princ "\nChon mau lop :")
;(setq t (getstring 5"\nTen cau kien : "))
;(command "UNDO" "")
(command "TEXT" "c" (list (+ x 500)(- y z)) 250 90 "TEÂN")
(command "ddedit" "last" "")
(traos)

)
)
(if (= lc "K")
(progn
(command "-style" "thep" "VNI-HELVE" "0" "1" "0" "n" "n")
(setq a (getpoint "\nChon diem tren ben trai: "))
(setq x (car a))
(setq y (cadr a))
(luuos)
(setvar "osmode" 0)
(command "-layer" "new" "Cat-20" "color" "20" "cat-20" "")
(setq s (getreal "\nSo luong hang: "))
(setq h (* s 600))
(setq z (* s 300))
(command "-layer" "set" "Cat-20" "")
(command "LINE"(list (+ x 0) (- y 0)) (list (+ x 0) (- y h)) "")
(command "LINE"(list (+ x 13214) (- y 0)) (list (+ x 13214) (- y h)) "")
(traos)
(luuos)
(setvar "osmode" 0)
(command "LINE"(list (+ x 2000) (- y 0)) (list (+ x 2000) (- y h)) "")
(command "LINE"(list (+ x 4925) (- y 0)) (list (+ x 4925) (- y h)) "")
(command "LINE"(list (+ x 7261) (- y 0)) (list (+ x 7261) (- y h)) "")
(command "LINE"(list (+ x 8610) (- y 0)) (list (+ x 8610) (- y h)) "")
(command "LINE"(list (+ x 11214) (- y 0)) (list (+ x 11214) (- y h)) "")
(command "LINE"(list (+ x 1200) (- y 0)) (list (+ x 1200) (- y h)) "")
(command "TRIM" "last" "" "f" (list (+ x 1) (- y 1)) (list (+ x 1) (+ (- y h) 1)) "" "")
(command "INSERT" "vitrichuthep" (list (+ x 950)(- y z)) 1 1 90)
(setq w (getstring 5"\nSo luong cau kien : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 950)(- y z)) 250 90 "( CK)")
(command "TEXT" "c" (list (+ x 950)(- y z 250)) 250 90 w)
;(command "INSERT" "vitrichuthep" (list (+ x 500)(- y z)) 1 1 90)
(princ "\nChon mau lop :")
;(setq t (getstring 5"\nTen cau kien : "))
;(command "UNDO" "")
(command "TEXT" "c" (list (+ x 500)(- y z)) 250 90 "TEÂN")
(command "ddedit" "last" "")
(traos)

)
)
(if (= lc "l")
(progn
(command "-style" "thep" "VNI-HELVE" "0" "1" "0" "n" "n")
(setq a (getpoint "\nChon diem tren ben trai: "))
(setq x (car a))
(setq y (cadr a))
(luuos)
(setvar "osmode" 0)
(command "LINE"(list (+ x 0) (- y 600)) (list (+ x 13214) (- y 600)) "")
(command "INSERT" "vitrichuthep" (list (+ x 1600)(- y 450)) 1 1 0)
(setq s (getstring 5"\nSo thu tu : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 1600)(- y 450)) 250 0 s)
(command "TEXT" "c" (list (+ x 3446)(- y 450)) 250 0 "L * *")
(command "INSERT" "vitrichuthep" (list (+ x 3082)(- y 450)) 1 1 0)
(setq d (getreal "\nCanh thu nhat : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 3082)(- y 450)) 250 0 (fix d))
(command "INSERT" "vitrichuthep" (list (+ x 3791)(- y 450)) 1 1 0)
(setq b (getreal "\nCanh thu hai : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 3791)(- y 450)) 250 0 (fix cool.gif)
(command "INSERT" "vitrichuthep" (list (+ x 4404)(- y 450)) 1 1 0)
(setq w (getreal "\nDo day : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 4404)(- y 450)) 250 0 (fix w))
(command "INSERT" "vitrichuthep" (list (+ x 6092)(- y 450)) 1 1 0)
(setq l (getreal "\nChieu dai thanh: "))
(command "erase" "last" "")
(command "TEXT" "c" (list (+ x 6092)(- y 450)) 250 0 (fix l))
(command "INSERT" "vitrichuthep" (list (+ x 7935)(- y 450)) 1 1 0)
(setq n (getreal "\nSo luong thanh: "))
(command "erase" "last" "")
(command "TEXT" "c" (list (+ x 7935)(- y 450)) 250 0 (fix n))
(setq c (* n l))
(setq m (/ c 1000))
(command "TEXT" "c" (list (+ x 9912)(- y 450)) 250 0 (rtos m 2 2))
(setq r (+ d cool.gif)
(setq k (* w r))
(setq v (* k 786))
(setq j (* v m))
(setq t (/ j 100000))
(command "TEXT" "c" (list (+ x 12214)(- y 450)) 250 0 (rtos t 2 2))
(command "LINE"(list (+ x 0) (- y 600)) (list (+ x 13214) (- y 600)) "")
(traos)
)
)


(if (= lc "L")
(progn
(command "-style" "thep" "VNI-HELVE" "0" "1" "0" "n" "n")
(setq a (getpoint "\nChon diem tren ben trai: "))
(setq x (car a))
(setq y (cadr a))
(luuos)
(setvar "osmode" 0)
(command "LINE"(list (+ x 0) (- y 600)) (list (+ x 13214) (- y 600)) "")
(command "INSERT" "vitrichuthep" (list (+ x 1600)(- y 450)) 1 1 0)
(setq s (getstring 5"\nSo thu tu : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 1600)(- y 450)) 250 0 s)
(command "TEXT" "c" (list (+ x 3446)(- y 450)) 250 0 "L * *")
(command "INSERT" "vitrichuthep" (list (+ x 3082)(- y 450)) 1 1 0)
(setq d (getreal "\nCanh thu nhat : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 3082)(- y 450)) 250 0 (fix d))
(command "INSERT" "vitrichuthep" (list (+ x 3791)(- y 450)) 1 1 0)
(setq b (getreal "\nCanh thu hai : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 3791)(- y 450)) 250 0 (fix cool.gif)
(command "INSERT" "vitrichuthep" (list (+ x 4404)(- y 450)) 1 1 0)
(setq w (getreal "\nDo day : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 4404)(- y 450)) 250 0 (fix w))
(command "INSERT" "vitrichuthep" (list (+ x 6092)(- y 450)) 1 1 0)
(setq l (getreal "\nChieu dai thanh: "))
(command "erase" "last" "")
(command "TEXT" "c" (list (+ x 6092)(- y 450)) 250 0 (fix l))
(command "INSERT" "vitrichuthep" (list (+ x 7935)(- y 450)) 1 1 0)
(setq n (getreal "\nSo luong thanh: "))
(command "erase" "last" "")
(command "TEXT" "c" (list (+ x 7935)(- y 450)) 250 0 (fix n))
(setq c (* n l))
(setq m (/ c 1000))
(command "TEXT" "c" (list (+ x 9912)(- y 450)) 250 0 (rtos m 2 2))
(setq r (+ d cool.gif)
(setq k (* w r))
(setq v (* k 786))
(setq j (* v m))
(setq t (/ j 100000))
(command "TEXT" "c" (list (+ x 12214)(- y 450)) 250 0 (rtos t 2 2))
(command "LINE"(list (+ x 0) (- y 600)) (list (+ x 13214) (- y 600)) "")
(traos)
)
)


(if (= lc "O")
(progn
(command "-style" "thep" "VNI-HELVE" "0" "1" "0" "n" "n")
(setq a (getpoint "\nChon diem tren ben trai: "))
(setq x (car a))
(setq y (cadr a))
(luuos)
(setvar "osmode" 0)
(command "INSERT" "vitrichuthep" (list (+ x 1600)(- y 450)) 1 1 0)
(setq s (getstring 5"\nSo thu tu : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 1600)(- y 450)) 250 0 s)
(command "TEXT" "c" (list (+ x 3250)(- y 450)) 250 0 "%%254= -DAØY")
(command "INSERT" "vitrichuthep" (list (+ x 3000)(- y 450)) 1 1 0)
(setq d (getreal "\nDuong kinh : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 3000)(- y 450)) 250 0 (fix d))
(command "INSERT" "vitrichuthep" (list (+ x 4550)(- y 450)) 1 1 0)
(setq b (getreal "\nDo day : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 4550)(- y 450)) 250 0 (fix cool.gif)
(command "INSERT" "vitrichuthep" (list (+ x 6092)(- y 450)) 1 1 0)
(setq l (getreal "\nChieu dai thanh: "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 6092)(- y 450)) 250 0 (fix l))
(command "INSERT" "vitrichuthep" (list (+ x 7935)(- y 450)) 1 1 0)
(setq n (getreal "\nSo luong thanh: "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 7935)(- y 450)) 250 0 (fix n))
(setq c (* n l))
(setq m (/ c 1000))
(command "TEXT" "c" (list (+ x 9912)(- y 450)) 250 0 (rtos m 2 2))
(setq r (* pi d))
(setq k (* r cool.gif)
(setq v (* k 786))
(setq j (* v m))
(setq t (/ j 50000))
(command "TEXT" "c" (list (+ x 12214)(- y 450)) 250 0 (rtos t 2 2))
(command "LINE"(list (+ x 0) (- y 600)) (list (+ x 13214) (- y 600)) "")
(traos)
)
)
(if (= lc "v")
(progn
(command "-style" "thep" "VNI-HELVE" "0" "1" "0" "n" "n")
(setq a (getpoint "\nChon diem tren ben trai: "))
(setq x (car a))
(setq y (cadr a))
(luuos)
(setvar "osmode" 0)
(command "INSERT" "vitrichuthep" (list (+ x 1600)(- y 450)) 1 1 0)
(setq s (getstring 5"\nSo thu tu : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 1600)(- y 450)) 250 0 s)
(command "TEXT" "c" (list (+ x 3446)(- y 450)) 250 0 "[] * *")
(command "INSERT" "vitrichuthep" (list (+ x 3082)(- y 450)) 1 1 0)
(setq d (getreal "\nCanh thu nhat : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 3082)(- y 450)) 250 0 (fix d))
(command "INSERT" "vitrichuthep" (list (+ x 3791)(- y 450)) 1 1 0)
(setq b (getreal "\nCanh thu hai : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 3791)(- y 450)) 250 0 (fix cool.gif)
(command "INSERT" "vitrichuthep" (list (+ x 4404)(- y 450)) 1 1 0)
(setq w (getreal "\nDo day : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 4404)(- y 450)) 250 0 (fix w))
(command "INSERT" "vitrichuthep" (list (+ x 6092)(- y 450)) 1 1 0)
(setq l (getreal "\nChieu dai thanh: "))
(command "erase" "last" "")
(command "TEXT" "c" (list (+ x 6092)(- y 450)) 250 0 (fix l))
(command "INSERT" "vitrichuthep" (list (+ x 7935)(- y 450)) 1 1 0)
(setq n (getreal "\nSo luong thanh: "))
(command "erase" "last" "")
(command "TEXT" "c" (list (+ x 7935)(- y 450)) 250 0 (fix n))
(setq c (* n l))
(setq m (/ c 1000))
(command "TEXT" "c" (list (+ x 9912)(- y 450)) 250 0 (rtos m 2 2))
(setq r (+ d cool.gif)
(setq k (* w r))
(setq v (* k 786))
(setq j (* v m))
(setq t (/ j 50000))
(command "TEXT" "c" (list (+ x 12214)(- y 450)) 250 0 (rtos t 2 2))
(command "LINE"(list (+ x 0) (- y 600)) (list (+ x 13214) (- y 600)) "")
(traos)
)
)

(if (= lc "V")
(progn
(command "-style" "thep" "VNI-HELVE" "0" "1" "0" "n" "n")
(setq a (getpoint "\nChon diem tren ben trai: "))
(setq x (car a))
(setq y (cadr a))
(luuos)
(setvar "osmode" 0)
(command "INSERT" "vitrichuthep" (list (+ x 1600)(- y 450)) 1 1 0)
(setq s (getstring 5"\nSo thu tu : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 1600)(- y 450)) 250 0 s)
(command "TEXT" "c" (list (+ x 3446)(- y 450)) 250 0 "[] * *")
(command "INSERT" "vitrichuthep" (list (+ x 3082)(- y 450)) 1 1 0)
(setq d (getreal "\nCanh thu nhat : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 3082)(- y 450)) 250 0 (fix d))
(command "INSERT" "vitrichuthep" (list (+ x 3791)(- y 450)) 1 1 0)
(setq b (getreal "\nCanh thu hai : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 3791)(- y 450)) 250 0 (fix cool.gif)
(command "INSERT" "vitrichuthep" (list (+ x 4404)(- y 450)) 1 1 0)
(setq w (getreal "\nDo day : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 4404)(- y 450)) 250 0 (fix w))
(command "INSERT" "vitrichuthep" (list (+ x 6092)(- y 450)) 1 1 0)
(setq l (getreal "\nChieu dai thanh: "))
(command "erase" "last" "")
(command "TEXT" "c" (list (+ x 6092)(- y 450)) 250 0 (fix l))
(command "INSERT" "vitrichuthep" (list (+ x 7935)(- y 450)) 1 1 0)
(setq n (getreal "\nSo luong thanh: "))
(command "erase" "last" "")
(command "TEXT" "c" (list (+ x 7935)(- y 450)) 250 0 (fix n))
(setq c (* n l))
(setq m (/ c 1000))
(command "TEXT" "c" (list (+ x 9912)(- y 450)) 250 0 (rtos m 2 2))
(setq r (+ d cool.gif)
(setq k (* w r))
(setq v (* k 786))
(setq j (* v m))
(setq t (/ j 50000))
(command "TEXT" "c" (list (+ x 12214)(- y 450)) 250 0 (rtos t 2 2))
(command "LINE"(list (+ x 0) (- y 600)) (list (+ x 13214) (- y 600)) "")
(traos)
)
)

(if (= lc "c")
(progn
(command "-style" "thep" "VNI-HELVE" "0" "1" "0" "n" "n")
(setq a (getpoint "\nChon diem tren ben trai: "))
(setq x (car a))
(setq y (cadr a))
(luuos)
(setvar "osmode" 0)
(command "LINE"(list (+ x 0) (- y 600)) (list (+ x 13214) (- y 600)) "")
(command "INSERT" "vitrichuthep" (list (+ x 1600)(- y 450)) 1 1 0)
(setq s (getstring 5"\nSo thu tu : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 1600)(- y 450)) 250 0 s)
(command "TEXT" "c" (list (+ x 3400)(- y 450)) 250 0 "C * *")
(command "INSERT" "vitrichuthep" (list (+ x 3082)(- y 450)) 1 1 0)
(setq d (getreal "\nCanh dai : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 3082)(- y 450)) 250 0 (fix d))
(command "INSERT" "vitrichuthep" (list (+ x 3791)(- y 450)) 1 1 0)
(setq b (getreal "\nCanh ngan : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 3791)(- y 450)) 250 0 (fix cool.gif)
(command "INSERT" "vitrichuthep" (list (+ x 4404)(- y 450)) 1 1 0)
(setq w (getreal "\nDo day : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 4404)(- y 450)) 250 0 (fix w))
(command "INSERT" "vitrichuthep" (list (+ x 6092)(- y 450)) 1 1 0)
(setq l (getreal "\nChieu dai thanh: "))
(command "erase" "last" "")
(command "TEXT" "c" (list (+ x 6092)(- y 450)) 250 0 (fix l))
(command "INSERT" "vitrichuthep" (list (+ x 7935)(- y 450)) 1 1 0)
(setq n (getreal "\nSo luong thanh: "))
(command "erase" "last" "")
(command "TEXT" "c" (list (+ x 7935)(- y 450)) 250 0 (fix n))
(setq c (* n l))
(setq m (/ c 1000))
(command "TEXT" "c" (list (+ x 9912)(- y 450)) 250 0 (rtos m 2 2))
(setq r (+ d b cool.gif)
(setq k (* w r))
(setq v (* k 786))
(setq j (* v m))
(setq t (/ j 100000))
(command "TEXT" "c" (list (+ x 12214)(- y 450)) 250 0 (rtos t 2 2))
(traos)
)
)

(if (= lc "C")
(progn
(command "-style" "thep" "VNI-HELVE" "0" "1" "0" "n" "n")
(setq a (getpoint "\nChon diem tren ben trai: "))
(setq x (car a))
(setq y (cadr a))
(luuos)
(setvar "osmode" 0)
(command "LINE"(list (+ x 0) (- y 600)) (list (+ x 13214) (- y 600)) "")
(command "INSERT" "vitrichuthep" (list (+ x 1600)(- y 450)) 1 1 0)
(setq s (getstring 5"\nSo thu tu : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 1600)(- y 450)) 250 0 s)
(command "TEXT" "c" (list (+ x 3400)(- y 450)) 250 0 "C * *")
(command "INSERT" "vitrichuthep" (list (+ x 3082)(- y 450)) 1 1 0)
(setq d (getreal "\nCanh dai : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 3082)(- y 450)) 250 0 (fix d))
(command "INSERT" "vitrichuthep" (list (+ x 3791)(- y 450)) 1 1 0)
(setq b (getreal "\nCanh ngan : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 3791)(- y 450)) 250 0 (fix cool.gif)
(command "INSERT" "vitrichuthep" (list (+ x 4404)(- y 450)) 1 1 0)
(setq w (getreal "\nDo day : "))
(command "UNDO" "")
(command "TEXT" "c" (list (+ x 4404)(- y 450)) 250 0 (fix w))
(command "INSERT" "vitrichuthep" (list (+ x 6092)(- y 450)) 1 1 0)
(setq l (getreal "\nChieu dai thanh: "))
(command "erase" "last" "")
(command "TEXT" "c" (list (+ x 6092)(- y 450)) 250 0 (fix l))
(command "INSERT" "vitrichuthep" (list (+ x 7935)(- y 450)) 1 1 0)
(setq n (getreal "\nSo luong thanh: "))
(command "erase" "last" "")
(command "TEXT" "c" (list (+ x 7935)(- y 450)) 250 0 (fix n))
(setq c (* n l))
(setq m (/ c 1000))
(command "TEXT" "c" (list (+ x 9912)(- y 450)) 250 0 (rtos m 2 2))
(setq r (+ d b cool.gif)
(setq k (* w r))
(setq v (* k 786))
(setq j (* v m))
(setq t (/ j 100000))
(command "TEXT" "c" (list (+ x 12214)(- y 450)) 250 0 (rtos t 2 2))
(traos))
)
(setvar "MODEMACRO" "**CHUC BAN LAM VIEC HIEU QUA** PHAM QUOC DUY - BINH SON - QUANG NGAI")

(Princ)
)

;-------
;;------------------------------------------------------------
(defun DUY_newerror (msg)
(if (and (/= msg "Function cancelled")
(/= msg "quit / exit abort")
)
(princ (strcat "\n" msg))
)
(done)
)
;;----------
(defun init ()
(setq
DUY_CMD (getvar "CMDECHO")
DUY_OLDERROR *error*
*error* DUY_newerror

)
(setvar "CMDECHO" 0)
(command ".undo" "BE")
)
;;----------
(defun done ()
(command ".redraw")
(command ".undo" "E")
(if DUY_CMD
(setvar "CMDECHO" DUY_CMD)
)
(if DUY_OLDERROR
(setq *error* DUY_OLDERROR)
)
(princ)
)
;;----------
(defun luuos ()
(setq
DUY_OSMODE (getvar "OSMODE")
DUY_AUTOSNAP (getvar "AUTOSNAP")
DUY_LAYERHH (getvar "CLAYER")
DUY_filletrad (getvar "FILLETRAD")
DUY_TEXTSTYLE (getvar "TEXTSTYLE")
)
)
(defun traos ()
(if DUY_OSMODE
(setvar "OSMODE" DUY_OSMODE)
)
(if DUY_LAYERHH
(setvar "CLAYER" DUY_LAYERHH)
)
(if DUY_AUTOSNAP
(setvar "AUTOSNAP" DUY_AUTOSNAP)
)
(if DUY_filletrad
(setvar "FILLETRAD" DUY_filletrad)
)
(if DUY_TEXTSTYLE
(setvar "TEXTSTYLE" DUY_TEXTSTYLE)
)


)


;;----------
(defun c:h? (/ tl index)
(setq index 0)
(foreach tl h_taptenlenh
(setq index (1+ index))
(princ (strcat "\n" (itoa index) ": " tl)
)
)
(princ)
)

;;----------
(setvar "MODEMACRO" "*_*CHUC BAN LAM VIEC HIEU QUA*_* ")
(setvar "UCSICON" 1)
(setvar "FILLETRAD" 0.0)
(setvar "GRIDMODE" 0)
(setvar "OSMODE" 191)
(setq h_tylebv 100.0)
(dangky_app)
(princ)
;-------
;---------------------------------------
(defun nstr (stri def)
(princ stri)
(princ "<")
(princ " ")
(princ def)
(princ ">")
(princ ":")
(princ " ")
);defun nstr
;--------------------
(defun nstr1 (stri)
(princ stri)
(princ "<")
(princ "Nhap vao")
(princ ">")
(princ ":")
(princ " ")
);defun nstr1
;---------------------
(defun nint (prompt def / temp)
(if def
(setq temp (getint (nstr prompt def)))
(setq def (getint (nstr1 prompt)))
);if def
(if temp
(setq def temp)
def
);if temp
);defun nint
;---------------------
(defun dnint (prompt def / temp)
(if def
(setq temp (getreal (nstr prompt def)))
(setq def (getreal (nstr1 prompt)))
);if def
(if temp
(setq def temp)
def
);if temp
);defun nint
;--------------------
(defun ndist (po prompt def / temp) ;nhan kh/cach va luu gia tri mac dinh
(if def
(setq temp (getdist po (nstr prompt def)))
(setq def (getdist po (nstr1 prompt)))
)if def
(if temp
(setq def temp)
def
);if temp
);defun ndist
;-----------------------------------




tambat
Chào các Bác
các bác hướng dẫn giùm cái này nhé.
minh muốn in tọa độ của điểm nào đó lên màn h́nh (xem tọa độ của điểm đó trên bản vẽ rồi ghi lại tọa độ đó bên cạnh điểm đó luôn) nhưng trong bản vẽ có rất nhiều điểm cần phải ghi lại như thế, mong các bác hướng dẫn giùm cách viết lisp theo kiểu ṿng lặp, chi cần nhập lệnh một lần đề nhập chọn từng điểu để in số liệu về tọa độ.



Nguyen Hoanh
Trích dẫn(tambat @ Jun 22 2007, 11:02 AM)
Chào các Bác
các bác hướng dẫn giùm cái này nhé.
minh muốn in tọa độ của điểm nào đó lên màn h́nh (xem tọa độ của điểm đó trên bản vẽ rồi ghi lại tọa độ đó bên cạnh điểm đó luôn) nhưng trong bản vẽ có rất nhiều điểm cần phải ghi lại như thế, mong các bác hướng dẫn giùm cách viết lisp theo kiểu ṿng lặp, chi cần nhập lệnh một lần đề nhập chọn từng điểu để in số liệu về tọa độ.


Đoạn mă dưới đây thực hiện điều bạn muốn:

(defun c:ntd( / caochu gt vt tmp)
(setq caochu (getdist "\nChieu cao cua text: "))
(while (and
(/= (setq gt (vl-string-trim "," (setq tmp (getstring "\nVao toa do cua diem, enter de ket thuc: ")))) "")
(setq vt (vl-string-position (ascii ",") gt))
)
(entmake (list
(cons 0 "TEXT")
(cons 10 (list (atof (substr gt 1 vt)) (atof (substr gt (+ vt 2))) 0.0))
(cons 1 gt)
(cons 40 caochu)
)
)
)
(if (/= tmp "") (princ "\nBan da nhap sai quy cach!"))
(princ)
)


tambat
[quote name='Nguyen Hoanh' post='3656' date='Jun 22 2007, 11:31 AM'][quote]



đoạn mă trên giúp ḿnh không phải nhập lệnh liên tục, do minh mới t́m hiểu ve lisp nên minh không phát triển lên để hoàn thành mong muốn của ḿnh nêu ra được, cho nên minh nêu rơ bài toán của ḿnh mong các bác giúp ḿnh nhé.
ḿnh muốn tọa độ của điểm đó ḿnh nhấp chuốt lên màn h́nh chứ không phải nhập vào. ḿnh xin được tŕnh bày rơ hơn về bài toán của ḿnh như sau.
Trên màn h́nh có các điểm (giao của các đường thẳng chẳng hạn) ḿnh muốn có một đoạn lisp nào đó có thể nhấp chuột vào điểm đó (điểm có tọa độ là A (XA, YA))
(SETQ A (GETPOINT "\nĐiểm cần ghi tọa độ:")); ...........
kết quả ghi lên màn h́nh là
X=" hoành độ điểm A"
Y="Tung độ điểm A"
tọa độ in ra màn h́nh ḿnh có thể ấn định số thập phân.

cảm ơn các bác nhiều.


vndesperados
[quote name='tambat' post='3660' date='Jun 22 2007, 02:03 PM'][quote name='Nguyen Hoanh' post='3656' date='Jun 22 2007, 11:31 AM'][quote]
đoạn mă trên giúp ḿnh không phải nhập lệnh liên tục, do minh mới t́m hiểu ve lisp nên minh không phát triển lên để hoàn thành mong muốn của ḿnh nêu ra được, cho nên minh nêu rơ bài toán của ḿnh mong các bác giúp ḿnh nhé.
ḿnh muốn tọa độ của điểm đó ḿnh nhấp chuốt lên màn h́nh chứ không phải nhập vào. ḿnh xin được tŕnh bày rơ hơn về bài toán của ḿnh như sau.
Trên màn h́nh có các điểm (giao của các đường thẳng chẳng hạn) ḿnh muốn có một đoạn lisp nào đó có thể nhấp chuột vào điểm đó (điểm có tọa độ là A (XA, YA))
(SETQ A (GETPOINT "\nĐiểm cần ghi tọa độ:")); ...........
kết quả ghi lên màn h́nh là
X=" hoành độ điểm A"
Y="Tung độ điểm A"
tọa độ in ra màn h́nh ḿnh có thể ấn định số thập phân.

cảm ơn các bác nhiều.[/quote]
CODE
(DEFUN EXCUTE(/ n P TX TY)
  (setq str (strcat "\nPhan so le muon lay [" (itoa sl) "] (press Enter or Space for get default): "))
  (setq n (getint str))
  (if (/= n Nil)
    (setq sl n)    
  )  
  (While T
    (setq P Null)
    (princ "\nPick a point or press ESC for exit:")
    (setq P (getpoint))
    (if (/= P Nil)
      (progn
    (setq TX (rtos (Car P) 2 sl))
    (setq TY (rtos (Cadr P) 2 sl))
    (command "-INSERT" "TD" P "1" "1" "0" TX TY)
      )      
    )  
  );End While  
)
(DEFUN INIT()
  (if (= sl Nil)
    (setq sl 2)
  )  
)
(DEFUN C:TOADO()
  (INIT)
  (EXCUTE)
)

Tải thêm cái này về:
http://www.cadviet.com/upfiles/TD.zip


sirdo
Có cái lisp nào ntn không: tự động copy nội dung của text 1 khi dc chọn -> tự động paste đè lên text 2?


tambat
Trích dẫn
Tải thêm cái này về:
http://www.cadviet.com/upfiles/TD.zip

Bác Nguyen Hoanh ơi ! sao ḿnh không tải được, vă lại có cách nào khác không (chỉ sử dụng lisp không thôi, mà không phai dùng file TD.dwg nữa không.

nhân tiện nhờ bác chỉ giùm ḿnh sửa đoạn lisp này với nha'

đoạn lisp này sau khi chạy th́ nó bỏ toàn bộ lựa chon truy bát tự đông (Snap), bác có cách nào giúp ḿnh lấy lại tựa chọn cũ hay không, vă lại bài toán trên có thể ghi tọa độ theo kiện ghi cao độ trong đoạn này được không?

CODE
;VE CAO TRINH
(DEFUN C:CT (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL
CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)
(SETQ OLDERR *error*
*error* loisb)
(command "layer" "m" "ghichu" "c" "150" """")
(SETQ CMD (GETVAR "CMDECHO"))
(SETQ NBC (GETVAR "CLAYER"))
(SETQ OSM (GETVAR "OSMODE"))
(SETVAR "CMDECHO" 0)
(SETQ PT1 (GETPOINT "\nDiem cao trinh:"))
(SETQ TX "%%p00.00");;(GETSTRING "\nCao trinh:"))
(SETQ FCH (SUBSTR TX 1 1))
(IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
(SETQ CRST (GETVAR "TEXTSTYLE"))
(SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))
(SETQ TSIZE (GETVAR "TEXTSIZE"))
(SETQ STR (RTOS TSIZE 2))
(SETQ PRMT (STRCAT "\nTy Le Ban Ve <" STR ">:"))
;(SETQ PRMT (STRCAT "\nText height <" STR ">:"))
(IF (= RSIZE 0)
(PROGN
(INITGET 4)
(SETQ TSIZE (GETREAL PRMT))
(IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))
(SETVAR "TEXTSIZE" TSIZE))
(SETQ TSIZE (* 2.5 TSIZE))
)
)
(PRINC)
(SETQ TL (* 2.5 (/ (GETVAR "TEXTSIZE") 2)))
(SETVAR "OSMODE" 0)
(SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
(SETQ NPI (/ PI 2))
(SETQ PT4 (POLAR PT1 NPI (* 1 TL)))
(SETQ PT2 (POLAR PT4 PI (* 2 TL)))
(SETQ PT3 (POLAR PT4 0 (* 9 TL)))
(SETQ PT5 (POLAR PT4 NPI (* 3 TL)))
(SETQ PT6 (POLAR PT2 NPI TL))
(SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
(SETQ PT8 (POLAR PT4 NPI (* 0.5 TL)))
(SETQ PT8 (POLAR PT8 0 (* 0.5 TL)))
(SETQ PT9 (POLAR PT1 pi (* 2 TL)))
(SETQ PT10 (POLAR PT1 0 (* 2 TL)))
(COMMAND "COLOR" "84" "")
(COMMAND "STYLE" "CAODO" "Vni-times" "" "" "" "" "")
;(COMMAND "STYLE" "honghung" "vn_vni.shx" "" "" "" "" "")

(IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))
(COMMAND "COLOR" "7" "")
(COMMAND "pLINE" PT3 "Width" "0.005" "" PT2 PT1 "Width" "0.05" "" PT9 PT10 PT1 "Width" "0.005" "" PT5 "")
(COMMAND "COLOR" "254" "")
(COMMAND "SOLID" PT1 PT2 PT4 "" "")
(SETVAR "CLAYER" "0")
(command "ddedit" pause)
)



Nguyen Hoanh
Trích dẫn(tambat @ Jun 25 2007, 08:18 AM)
Bác Nguyen Hoanh ơi ! sao ḿnh không tải được, vă lại có cách nào khác không (chỉ sử dụng lisp không thôi, mà không phai dùng file TD.dwg nữa không.
Vẫn download b́nh thường mà bạn!

Trích dẫn(tambat @ Jun 25 2007, 08:18 AM)
nhân tiện nhờ bác chỉ giùm ḿnh sửa đoạn lisp này với nha'
đoạn lisp này sau khi chạy th́ nó bỏ toàn bộ lựa chon truy bát tự đông (Snap), bác có cách nào giúp ḿnh lấy lại tựa chọn cũ hay không, vă lại bài toán trên có thể ghi tọa độ theo kiện ghi cao độ trong đoạn này được không?

Để không mất truy bắt, bạn thêm 2 ḍng mă như sau:
- (setq old_osmode (getvar "OSMODE")) vào đầu tiên của hàm (trước ḍng command "layer" ...).
- (setvar "OSMODE" old_osmode) vào cuối cùng của hàm (sau ḍng command "ddedit" ...).

Trong đoạn mă trên, mă lệnh (SETQ OLDERR *error* *error* loisb) là vô nghĩa v́ không có hàm loisb.


vndesperados
Trích dẫn(sirdo @ Jun 24 2007, 11:42 PM)
Có cái lisp nào ntn không: tự động copy nội dung của text 1 khi dc chọn -> tự động paste đè lên text 2?


Cái này th́ đơn giản lắm. C̣n một cách đơn giản hơn nữa là dùng lệnhCopy.
Chẳng hiểu phải tạo ra một lệnh copy nội dung của Text1 rổi thay thế nó cho một Text 2 để làm ǵ trong khi truyền thống của dân CAD là copy nhưng cái giống nhau, cái nào khác nhau th́ sữa lại một chút.

Lần sau bác t́m ư tưởng nào hay hay một chút,
hehehheheheh


duy782006
Trích dẫn(sirdo @ Jun 24 2007, 11:42 PM)
Có cái lisp nào ntn không: tự động copy nội dung của text 1 khi dc chọn -> tự động paste đè lên text 2?


Ḿnh có cái này hồi xưa thấy trong CD bán ngoài thị trường chẳng biết của ai viết nhưng đúng ư của bạn nè.
CODE

(defun c:ND
(/ Ename Elist Msg Oldtext Oldlist Newtext Newlist)
(prompt "\nChon chu muon chinh.")
(setq Ename (car (entsel)))
(prompt "\nChon chu lam chuan.")
(if (not Ename) (prompt "\nChua chon duoc doi tuong.")
(progn
(setq Elist (entget Ename))
(setq Oldlist (assoc 1 Elist))
(setq Oldtext (cdr Oldlist))
(setq Msg (strcat "\nNewtext <" Oldtext ">:"))
(setq Newtext (car (entsel)))
(setq Newtext (entget Newtext))
(setq Newtext (assoc 1 Newtext))
(setq Newtext (cdr Newtext))
(if (= Newtext "") (setq Newtext Oldtext))
(setq Newlist (cons '1 Newtext))
(setq Elist (subst Newlist Oldlist Elist))
(entmod Elist)
) ; end progn
) ; end if
(princ)
)


Tên lệnh là ND
Chọn chử muốn chỉnh trước rồi chọn chử làm mẫu sau. Chúc vui !!!!!!


duy782006
Trích dẫn(vndesperados @ Jun 25 2007, 09:54 AM)
Cái này th́ đơn giản lắm. C̣n một cách đơn giản hơn nữa là dùng lệnhCopy.
Chẳng hiểu phải tạo ra một lệnh copy nội dung của Text1 rổi thay thế nó cho một Text 2 để làm ǵ trong khi truyền thống của dân CAD là copy nhưng cái giống nhau, cái nào khác nhau th́ sữa lại một chút.

Lần sau bác t́m ư tưởng nào hay hay một chút,
hehehheheheh


Lần này bác không đúng rồi cái này rất hay dùng:
Ví dụ đă có khung tên các ḍng chử đă có sẳn, canh lề, chiều cao bây giờ chỉ cần nội dung có sẵn đâu đó trong bản vẽ.
Bác đồng ư rồi chứ.

Trên đây là phiên bản rút gọn, hãy Xem phiên bản đầy đủ của chủ đề trong diễn đàn và cùng đóng góp bài viết cho diễn đàn CADViet.com
 

www.cadviet.com © cadviet 2007
Ghi rõ nguồn www.cadviet.com khi phát hành lại thông tin từ trang web này.
Mọi vấn đề liên quan xin liên hệ email: