Jump to content
InfoFile
Tác giả: phamthanhbinh
Bài viết gốc: 152167
Tên lệnh: ns
lisp nội suy cao độ từ tam giác

Hề hề hề,
Gửi bạn cái ni, không biết đã đúng ý bạn chưa??? Lưu ý rằng 3 text mà bạn chọn phải là 3 text có giá trị của cao độ và đặt tại điểm ghi cao độ đó.


Lisp này mình mót được từ trên diễn đàn Cadviet, hình như của bác Nguyễn Hoành thì phải. Hãy cám ơn bác ấy.

Filename: 152167_ns.lsp
Tác giả: nhoclangbat
Bài viết gốc: 224361
Tên lệnh: llt
Giúp em vần đề linetype
Thanks anh Tue vì em dùng lệnh cad nhiều bước nên lười :D, nếu mình tạo hay lượm nhặt đc các linetype rùi đóng nó thành file.lin mún load mổi lần phải load tìm đường dẫn chọn -> ok. Nay dùng lsp gọn hơn 1 ít hihi.
Đây bạn dattran tham khảo hỉ

Lưu ý chỉ thay ngay đúng chữ viết màu đỏ,...
>>
Thanks anh Tue vì em dùng lệnh cad nhiều bước nên lười :D, nếu mình tạo hay lượm nhặt đc các linetype rùi đóng nó thành file.lin mún load mổi lần phải load tìm đường dẫn chọn -> ok. Nay dùng lsp gọn hơn 1 ít hihi.
Đây bạn dattran tham khảo hỉ

Lưu ý chỉ thay ngay đúng chữ viết màu đỏ, màu đen giữ nguyên y chang nhé :D
Code ví dụ

(defun c:llt ()
(if (tblsearch "ltype" "acad.lin")
(command "linetype" "load" "acad.lin" "C:\\program files\\autodesk\\autocad 2012 - English\\supports\\acad.lin" "y")
(command "linetype" "load" "DASHDOT,DASHED" "C:\\program files\\autodesk\\autocad 2012 - English\\supports\\acad.lin" ""))
)

<<

Filename: 224361_llt.lsp
Tác giả: ketxu
Bài viết gốc: 167075
Tên lệnh: d1+nil d2+nil d3+nil d4+nil d5+nil d6+nil
[Yêu cầu] Lisp tắt về lệnh dim
Của bạn đây, hy vọng từ file này bạn có thể tạo thêm nhiều lệnh tắt khác theo ý mình, vì thực sự nó không khó chút nào
t

Filename: 167075_d1+nil_d2+nil_d3+nil_d4+nil_d5+nil_d6+nil.lsp
Tác giả: jikibo
Bài viết gốc: 444
Tên lệnh: hc hm ha hs
Ứng dụng LISP để vẽ bản vẽ kiến trúc (phần cơ bản)
Tiếp tục nào. Chán với mấy cái cửa, với mấy đường LINE rồi. Giờ ta Hatch nhé.

Bài 10: Hiệu chỉnh Hatch



Trong lisp này cung cấp cho chúng ta những lện sau
1. hc: Copy Hatch
1. hm: Move Hatch
1. ha: Chỉnh góc của mấu Hatch
1. hs: Chỉnh độ Scale của mẫu Hatch

Filename: 444_hc_hm_ha_hs.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 1260
Tên lệnh: exppnt imppnt
AutoCAD với Excel
Tại trang tin cũng đã có 1 ví dụ về chương trình LISP nhập xuất dữ liệu giữa AutoCAD và Excel.
http://www.cadviet.com/content/view/20/1/

Đó là chương trình eiPoint (Export Import Point), là chương trình khá đơn giản và cơ bản. Chúng ta có thể cải tiến nó để đáp ứng được từng mục đích riêng của mình.

Dưới đây là...
>>
Tại trang tin cũng đã có 1 ví dụ về chương trình LISP nhập xuất dữ liệu giữa AutoCAD và Excel.
http://www.cadviet.com/content/view/20/1/

Đó là chương trình eiPoint (Export Import Point), là chương trình khá đơn giản và cơ bản. Chúng ta có thể cải tiến nó để đáp ứng được từng mục đích riêng của mình.

Dưới đây là mã lệnh của chương trình eiPoint (lấy từ trang tin):


Bản chất của quá trình trao đổi dữ liệu giữa AutoCAD và Excel trong ví dụ trên là tạo ra một tệp có đuôi .txt làm trung gian.
<<

Filename: 1260_exppnt_imppnt.lsp
Tác giả: lenhatanh
Bài viết gốc: 222288
Tên lệnh: %3Cspan+clas
[Nhờ chỉnh sửa] lisp xuất Kết quả đo diện tích sang Excel
Mọi người dùng thử lisp "Đo diện tích, xuât kết quả ra CAD và Excel" và đóng góp ý kiến nhé.
Cám ơn sự góp ý, đóng góp và code của các bạn Hà, Bình, Ketxu, tnmtpc...
- File Dien_tich_01.dcl

Dientich01 : dialog {
label = " *** - T&#221;nh Di&#214;n T&#221;ch Cho C&#184;c M&#198;t C&#190;t Ngang - Hec 13";
fixed_width = center;
: boxed_column {
: row {
>>
Mọi người dùng thử lisp "Đo diện tích, xuât kết quả ra CAD và Excel" và đóng góp ý kiến nhé.
Cám ơn sự góp ý, đóng góp và code của các bạn Hà, Bình, Ketxu, tnmtpc...
- File Dien_tich_01.dcl

Dientich01 : dialog {
label = " *** - T&#221;nh Di&#214;n T&#221;ch Cho C&#184;c M&#198;t C&#190;t Ngang - Hec 13";
fixed_width = center;
: boxed_column {
: row {
fixed_width = true;
children_alignment = centered;
: edit_box {
label = "Ti Le Ve MCN:";
key = "tle";
edit_width = 6;
edit_height = 1;
}
: edit_box {
label = "Ten Mat Cat:";
fixed_width = true;
key = "ten";
edit_width = 6;
edit_height = 1;
}
: edit_box {
label = "Khoang Cach C.Don:";
fixed_width = true;
key = "cdon";
edit_width = 6;
edit_height = 1;
}
}
}
:spacer { height=0.5; }
//-----------------------------
: boxed_column {
label = "-------------Thanh Phan - Hang Muc Tinh Dien Tich:";
: row {
fixed_width = true;
children_alignment = Right;
: toggle {
key = "t1";
mnemonic = "b";
value = "0";
}
: edit_box {
label = "S";
key = "e1";
edit_width = 30;
}
: text {
label = "= ";
key = "s1";
edit_width = 100;
}
: button {
label = "Pick" ;
is_default = true ;
key = "p1" ;
width = 26;
}
}
//-----------------------------
: row {
fixed_width = true;
children_alignment = Right;
: toggle {
key = "t2";
mnemonic = "b";
value = "0";
}
: edit_box {
label = "S";
key = "e2";
edit_width = 30;
}
: text {
label = "= ";
key = "s2";
edit_width = 100;
}
: button {
label = "Pick" ;
is_default = true ;
key = "p2" ;
width = 26;
}
}
//-----------------------------
: row {
fixed_width = true;
children_alignment = Right;
: toggle {
key = "t3";
mnemonic = "b";
value = "0";
}
: edit_box {
label = "S";
key = "e3";
edit_width = 30;
}
: text {
label = "= ";
key = "s3";
edit_width = 100;
}
: button {
label = "Pick" ;
is_default = true ;
key = "p3" ;
width = 26;
}
}
//-----------------------------
: row {
fixed_width = true;
children_alignment = Right;
: toggle {
key = "t4";
mnemonic = "b";
value = "0";
}
: edit_box {
label = "S";
key = "e4";
edit_width = 30;
}
: text {
label = "= ";
key = "s4";
edit_width = 100;
}
: button {
label = "Pick" ;
is_default = true ;
key = "p4" ;
width = 26;
}
}
//-----------------------------
: row {
fixed_width = true;
children_alignment = Right;
: toggle {
key = "t5";
mnemonic = "b";
value = "0";
}
: edit_box {
label = "S";
key = "e5";
edit_width = 30;
}
: text {
label = "= ";
key = "s5";
edit_width = 100;
}
: button {
label = "Pick" ;
is_default = true ;
key = "p5" ;
width = 26;
}
}
//-----------------------------
: row {
fixed_width = true;
children_alignment = Right;
: toggle {
key = "t6";
mnemonic = "b";
value = "0";
}
: edit_box {
label = "S";
key = "e6";
edit_width = 30;
}
: text {
label = "= ";
key = "s6";
edit_width = 100;
}
: button {
label = "Pick" ;
is_default = true ;
key = "p6" ;
width = 26;
}
}
//-----------------------------
: row {
fixed_width = true;
children_alignment = Right;
: toggle {
key = "t7";
mnemonic = "b";
value = "0";
}
: edit_box {
label = "S";
key = "e7";
edit_width = 30;
}
: text {
label = "= ";
key = "s7";
edit_width = 100;
}
: button {
label = "Pick" ;
is_default = true ;
key = "p7" ;
width = 26;
}
}
//-----------------------------
: row {
fixed_width = true;
children_alignment = Right;
: toggle {
key = "t8";
mnemonic = "b";
value = "0";
}
: edit_box {
label = "S";
key = "e8";
edit_width = 30;
}
: text {
label = "= ";
key = "s8";
edit_width = 100;
}
: button {
label = "Pick" ;
is_default = true ;
key = "p8" ;
width = 26;
}
}
//-----------------------------
: row {
fixed_width = true;
children_alignment = Right;
: toggle {
key = "t9";
mnemonic = "b";
value = "0";
}
: edit_box {
label = "S";
key = "e9";
edit_width = 30;
}
: text {
label = "= ";
key = "s9";
edit_width = 100;
}
: button {
label = "Pick" ;
is_default = true ;
key = "p9" ;
width = 26;
}
}
//-----------------------------
: row {
fixed_width = true;
children_alignment = Right;
: toggle {
key = "t10";
mnemonic = "b";
value = "0";
}
: edit_box {
label = "S";
key = "e10";
edit_width = 30;
}
: text {
label = "= ";
key = "s10";
edit_width = 100;
}
: button {
label = "Pick" ;
is_default = true ;
key = "p10" ;
width = 26;
}
}
}
//-----------------------------
: row {
fixed_height = true;
children_alignment = centered;
: spacer { height=3; }
// : spacer { width=3; }
: button {
label = "Xuat sang Excel" ;
is_default = true ;
key = "excel" ;
width = 20;
}
: button {
label = "OK" ;
is_default = true ;
key = "start" ;
width = 20;
}
: button {
label = "Cancel" ;
width = 20;
is_cancel= true ;
}
// : text_part { label = "paragraph 1"; }
// : paragraph {
// : text_part { label = "paragraph 1"; }
// : spacer { height=0.1; }
// : text_part { label = "paragraph 2"; }
// : text_part { label = "paragraph 3"; }
// }
// : paragraph {
// : concatenation {
// : text_part {label = "column 1";}
// : text_part {label = "column 2";}
// : text_part {label = "column 3";}
// }
// }
:spacer { height=0.1; }
}
}

- File lisp:

;---------Tinh Dien Tich Dao, Dap (Cho M.cat) - dientich-01
;**********************************************************
(defun Get_tle (/ g:tle)
(set_tile "error" "")
(setq g:tle (get_tile "tle"))
(setq tle (atof g:tle))
)
;------------------------------------------
(defun Get_ten (/ g:ten)
(set_tile "error" "")
(setq g:ten (get_tile "ten"))
(setq ten g:ten)
)
;------------------------------------------
(defun Get_cdon (/ g:cdon)
(set_tile "error" "")
(setq g:cdon (get_tile "cdon"))
(setq cdon (atof g:cdon))
)
;------------------------------------------
;------------------------------------------
(defun Get_t1()
(set_tile "error" "")
(setq g:t1 (get_tile "t1"))
(setq t1 g:t1)
(cond
((= g:t1 "1")
(mode_tile "e1" 0)
(mode_tile "s1" 0)
(mode_tile "p1" 0)
)
(T
(mode_tile "e1" 1)
(mode_tile "s1" 1)
(mode_tile "p1" 1)
(set_tile "e1" (setq g:e1 ""))
(set_tile "s1" (STRCAT "= " (setq g:s1 (rtos 0.0 2 3)) " m2"))
)
)
)
;------------------------------------------
(defun Get_t2()
(set_tile "error" "")
(setq g:t2 (get_tile "t2"))
(setq t2 g:t2)
(cond
((= g:t2 "1")
(mode_tile "e2" 0)
(mode_tile "s2" 0)
(mode_tile "p2" 0)
)
(T
(mode_tile "e2" 1)
(mode_tile "s2" 1)
(mode_tile "p2" 1)
(set_tile "e2" (setq g:e2 ""))
(set_tile "s2" (STRCAT "= " (setq g:s2 (rtos 0.0 2 3)) " m2"))
)
)
)
;------------------------------------------
(defun Get_t3()
(set_tile "error" "")
(setq g:t3 (get_tile "t3"))
(setq t3 g:t3)
(cond
((= g:t3 "1")
(mode_tile "e3" 0)
(mode_tile "s3" 0)
(mode_tile "p3" 0)
)
(T
(mode_tile "e3" 1)
(mode_tile "s3" 1)
(mode_tile "p3" 1)
(set_tile "e3" (setq g:e3 ""))
(set_tile "s3" (STRCAT "= " (setq g:s3 (rtos 0.0 2 3)) " m2"))
)
)
)
;------------------------------------------
(defun Get_t4()
(set_tile "error" "")
(setq g:t4 (get_tile "t4"))
(setq t4 g:t4)
(cond
((= g:t4 "1")
(mode_tile "e4" 0)
(mode_tile "s4" 0)
(mode_tile "p4" 0)
)
(T
(mode_tile "e4" 1)
(mode_tile "s4" 1)
(mode_tile "p4" 1)
(set_tile "e4" (setq g:e4 ""))
(set_tile "s4" (STRCAT "= " (setq g:s4 (rtos 0.0 2 3)) " m2"))
)
)
)
;------------------------------------------
(defun Get_t5()
(set_tile "error" "")
(setq g:t5 (get_tile "t5"))
(setq t5 g:t5)
(cond
((= g:t5 "1")
(mode_tile "e5" 0)
(mode_tile "s5" 0)
(mode_tile "p5" 0)
)
(T
(mode_tile "e5" 1)
(mode_tile "s5" 1)
(mode_tile "p5" 1)
(set_tile "e5" (setq g:e5 ""))
(set_tile "s5" (STRCAT "= " (setq g:s5 (rtos 0.0 2 3)) " m2"))
)
)
)
;------------------------------------------
(defun Get_t6()
(set_tile "error" "")
(setq g:t6 (get_tile "t6"))
(setq t6 g:t6)
(cond
((= g:t6 "1")
(mode_tile "e6" 0)
(mode_tile "s1" 0)
(mode_tile "p6" 0)
)
(T
(mode_tile "e6" 1)
(mode_tile "s6" 1)
(mode_tile "p6" 1)
(set_tile "e6" (setq g:e6 ""))
(set_tile "s6" (STRCAT "= " (setq g:s6 (rtos 0.0 2 3)) " m2"))
)
)
)
;------------------------------------------
(defun Get_t7()
(set_tile "error" "")
(setq g:t7 (get_tile "t7"))
(setq t7 g:t7)
(cond
((= g:t7 "1")
(mode_tile "e7" 0)
(mode_tile "s7" 0)
(mode_tile "p7" 0)
)
(T
(mode_tile "e7" 1)
(mode_tile "s7" 1)
(mode_tile "p7" 1)
(set_tile "e7" (setq g:e7 ""))
(set_tile "s7" (STRCAT "= " (setq g:s7 (rtos 0.0 2 3)) " m2"))
)
)
)
;------------------------------------------
(defun Get_t8()
(set_tile "error" "")
(setq g:t8 (get_tile "t8"))
(setq t8 g:t8)
(cond
((= g:t8 "1")
(mode_tile "e8" 0)
(mode_tile "s8" 0)
(mode_tile "p8" 0)
)
(T
(mode_tile "e8" 1)
(mode_tile "s8" 1)
(mode_tile "p8" 1)
(set_tile "e8" (setq g:e8 ""))
(set_tile "s8" (STRCAT "= " (setq g:s8 (rtos 0.0 2 3)) " m2"))
)
)
)
;------------------------------------------
(defun Get_t9()
(set_tile "error" "")
(setq g:t9 (get_tile "t9"))
(setq t9 g:t9)
(cond
((= g:t9 "1")
(mode_tile "e9" 0)
(mode_tile "s9" 0)
(mode_tile "p9" 0)
)
(T
(mode_tile "e9" 1)
(mode_tile "s9" 1)
(mode_tile "p9" 1)
(set_tile "e9" (setq g:e9 ""))
(set_tile "s9" (STRCAT "= " (setq g:s9 (rtos 0.0 2 3)) " m2"))
)
)
)
;------------------------------------------
(defun Get_t10()
(set_tile "error" "")
(setq g:t10 (get_tile "t10"))
(setq t10 g:t10)
(cond
((= g:t10 "1")
(mode_tile "e10" 0)
(mode_tile "s10" 0)
(mode_tile "p10" 0)
)
(T
(mode_tile "e10" 1)
(mode_tile "s10" 1)
(mode_tile "p10" 1)
(set_tile "e10" (setq g:e10 ""))
(set_tile "s10" (STRCAT "= " (setq g:s10 (rtos 0.0 2 3)) " m2"))
)
)
)
;------------------------------------------
;------------------------------------------
(defun Get_e1()
(set_tile "error" "")
(setq g:e1 (get_tile "e1"))
(setq e1 g:e1)
)
;------------------------------------------
(defun Get_e2()
(set_tile "error" "")
(setq g:e2 (get_tile "e2"))
(setq e2 g:e2)
)
;------------------------------------------
(defun Get_e3()
(set_tile "error" "")
(setq g:e3 (get_tile "e3"))
(setq e3 g:e3)
)
;------------------------------------------
(defun Get_e4()
(set_tile "error" "")
(setq g:e4 (get_tile "e4"))
(setq e4 g:e4)
)
;------------------------------------------
(defun Get_e5()
(set_tile "error" "")
(setq g:e5 (get_tile "e5"))
(setq e5 g:e5)
)
;------------------------------------------
(defun Get_e6()
(set_tile "error" "")
(setq g:e6 (get_tile "e6"))
(setq e6 g:e6)
)
;------------------------------------------
(defun Get_e7()
(set_tile "error" "")
(setq g:e7 (get_tile "e7"))
(setq e7 g:e7)
)
;------------------------------------------
(defun Get_e8()
(set_tile "error" "")
(setq g:e8 (get_tile "e8"))
(setq e8 g:e8)
)
;------------------------------------------
(defun Get_e9()
(set_tile "error" "")
(setq g:e9 (get_tile "e9"))
(setq e9 g:e9)
)
;------------------------------------------
(defun Get_e10()
(set_tile "error" "")
(setq g:e10 (get_tile "e10"))
(setq e10 g:e10)
)
;------------------------------------------
;------------------------------------------
(defun Get_p1()
(set_tile "error" "")
(dientich)
; (alert (strcat "\n tri so g:btct = " g:btct))
)
;------------------------------------------
(defun Get_p2()
(set_tile "error" "")
(dientich)
)
;------------------------------------------
(defun Get_p3()
(set_tile "error" "")
(dientich)
)
;------------------------------------------
(defun Get_p4()
(set_tile "error" "")
(dientich)
)
;------------------------------------------
(defun Get_p5()
(set_tile "error" "")
(dientich)
)
;------------------------------------------
(defun Get_p6()
(set_tile "error" "")
(dientich)
)
;------------------------------------------
(defun Get_p7()
(set_tile "error" "")
(dientich)
)
;------------------------------------------
(defun Get_p8()
(set_tile "error" "")
(dientich)
)
;------------------------------------------
(defun Get_p9()
(set_tile "error" "")
(dientich)
)
;------------------------------------------
(defun Get_p10()
(set_tile "error" "")
(dientich)
)
;------------------------------------------
;;;mode_tile - 0 = an (Tat), 1 = Hien (mo)
;------------------------------------------
(defun Setloc()
(if (not tle) (setq tle 50.0))
(set_tile "tle" (setq g:tle (rtos tle 2 0)))

(if (not ten) (setq ten "A-A"))
(set_tile "ten" (setq g:ten ten))

(if (not cdon) (setq cdon 0.0))
(set_tile "cdon" (setq g:cdon (rtos cdon 2 2)))

(if (not e1) (setq e1 ""))
(set_tile "e1" (setq g:e1 e1))

(if (not e2) (setq e2 ""))
(set_tile "e2" (setq g:e2 e2))

(if (not e3) (setq e3 ""))
(set_tile "e3" (setq g:e3 e3))

(if (not e4) (setq e4 ""))
(set_tile "e4" (setq g:e4 e4))

(if (not e5) (setq e5 ""))
(set_tile "e5" (setq g:e5 e5))

(if (not e6) (setq e6 ""))
(set_tile "e6" (setq g:e6 e6))

(if (not e7) (setq e7 ""))
(set_tile "e7" (setq g:e7 e7))

(if (not e8) (setq e8 ""))
(set_tile "e8" (setq g:e8 e8))

(if (not e9) (setq e9 ""))
(set_tile "e9" (setq g:e9 e9))

(if (not e10) (setq e10 ""))
(set_tile "e10" (setq g:e10 e10))

(if (not dt1) (setq dt1 0.0))
(set_tile "s1" (STRCAT "= " (setq g:s1 (rtos dt1 2 3)) " m2"))

(if (not dt2) (setq dt2 0.0))
(set_tile "s2" (STRCAT "= " (setq g:s2 (rtos dt2 2 3)) " m2"))

(if (not dt3) (setq dt3 0.0))
(set_tile "s3" (STRCAT "= " (setq g:s3 (rtos dt3 2 3)) " m2"))

(if (not dt4) (setq dt4 0.0))
(set_tile "s4" (STRCAT "= " (setq g:s4 (rtos dt4 2 3)) " m2"))

(if (not dt5) (setq dt5 0.0))
(set_tile "s5" (STRCAT "= " (setq g:s5 (rtos dt5 2 3)) " m2"))

(if (not dt6) (setq dt6 0.0))
(set_tile "s6" (STRCAT "= " (setq g:s6 (rtos dt6 2 3)) " m2"))

(if (not dt7) (setq dt7 0.0))
(set_tile "s7" (STRCAT "= " (setq g:s7 (rtos dt7 2 3)) " m2"))

(if (not dt8) (setq dt8 0.0))
(set_tile "s8" (STRCAT "= " (setq g:s8 (rtos dt8 2 3)) " m2"))

(if (not dt9) (setq dt9 0.0))
(set_tile "s9" (STRCAT "= " (setq g:s9 (rtos dt9 2 3)) " m2"))

(if (not dt10) (setq dt10 0.0))
(set_tile "s10" (STRCAT "= " (setq g:s10 (rtos dt10 2 3)) " m2"))
(if (not g:t1) (setq g:t1 "1"))
(set_tile "t1" g:t1)
(cond
((= g:t1 "1")
(mode_tile "e1" 0)
(mode_tile "s1" 0)
(mode_tile "p1" 0)
)
(T
(mode_tile "e1" 1)
(mode_tile "s1" 1)
(mode_tile "p1" 1)
)
)
(if (not g:t2) (setq g:t2 "0"))
(set_tile "t2" g:t2)
(cond
((= g:t2 "1")
(mode_tile "e2" 0)
(mode_tile "s2" 0)
(mode_tile "p2" 0)
)
(T
(mode_tile "e2" 1)
(mode_tile "s2" 1)
(mode_tile "p2" 1)
)
)
(if (not g:t3) (setq g:t3 "0"))
(set_tile "t3" g:t3)
(cond
((= g:t3 "1")
(mode_tile "e3" 0)
(mode_tile "s3" 0)
(mode_tile "p3" 0)
)
(T
(mode_tile "e3" 1)
(mode_tile "s3" 1)
(mode_tile "p3" 1)
)
)
(if (not g:t4) (setq g:t4 "0"))
(set_tile "t4" g:t4)
(cond
((= g:t4 "1")
(mode_tile "e4" 0)
(mode_tile "s4" 0)
(mode_tile "p4" 0)
)
(T
(mode_tile "e4" 1)
(mode_tile "s4" 1)
(mode_tile "p4" 1)
)
)
(if (not g:t5) (setq g:t5 "0"))
(set_tile "t5" g:t5)
(cond
((= g:t5 "1")
(mode_tile "e5" 0)
(mode_tile "s5" 0)
(mode_tile "p5" 0)
)
(T
(mode_tile "e5" 1)
(mode_tile "s5" 1)
(mode_tile "p5" 1)
)
)
(if (not g:t6) (setq g:t6 "0"))
(set_tile "t6" g:t6)
(cond
((= g:t6 "1")
(mode_tile "e6" 0)
(mode_tile "s1" 0)
(mode_tile "p6" 0)
)
(T
(mode_tile "e6" 1)
(mode_tile "s6" 1)
(mode_tile "p6" 1)
)
)
(if (not g:t7) (setq g:t7 "0"))
(set_tile "t7" g:t7)
(cond
((= g:t7 "1")
(mode_tile "e7" 0)
(mode_tile "s7" 0)
(mode_tile "p7" 0)
)
(T
(mode_tile "e7" 1)
(mode_tile "s7" 1)
(mode_tile "p7" 1)
)
)
(if (not g:t8) (setq g:t8 "0"))
(set_tile "t8" g:t8)
(cond
((= g:t8 "1")
(mode_tile "e8" 0)
(mode_tile "s8" 0)
(mode_tile "p8" 0)
)
(T
(mode_tile "e8" 1)
(mode_tile "s8" 1)
(mode_tile "p8" 1)
)
)
(if (not g:t9) (setq g:t9 "0"))
(set_tile "t9" g:t9)
(cond
((= g:t9 "1")
(mode_tile "e9" 0)
(mode_tile "s9" 0)
(mode_tile "p9" 0)
)
(T
(mode_tile "e9" 1)
(mode_tile "s9" 1)
(mode_tile "p9" 1)
)
)
(if (not g:t10) (setq g:t10 "0"))
(set_tile "t10" g:t10)
(cond
((= g:t10 "1")
(mode_tile "e10" 0)
(mode_tile "s10" 0)
(mode_tile "p10" 0)
)
(T
(mode_tile "e10" 1)
(mode_tile "s10" 1)
(mode_tile "p10" 1)
)
)
)
;---------------
(defun Restore()
(command "LUPREC" 2 "color" "bylayer" "osmode" 97)
(setq *ERROR* Olderr)
(setvar "BLIPMODE" Oldblp) (setvar "CMDECHO" Oldech)
(setvar "PICKBOX" 4) (setvar "DIMZIN" 8)
)
;----------------------------------------------------------------------------
(defun C:dientich-01 (/ Oldblp Oldech Olderr Dial nhim What_next ten cdon sdo
t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10
p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 dt1 dt2 dt3 dt4 dt5 dt6 dt7 dt8 dt9 dt10
g:e1 g:e2 g:e3 g:e4 g:e5 g:e6 g:e7 g:e8 g:e9 g:e10
g:s1 g:s2 g:s3 g:s4 g:s5 g:s6 g:s7 g:s8 g:s9 g:s10)
(setq Oldblp (getvar "BLIPMODE") Oldech (getvar "CMDECHO") Olderr *ERROR*)
(setvar "BLIPMODE" 0) (setvar "DIMZIN" 0) (setvar "PICKBOX" 0) (setvar "CMDECHO" 0)
(COMMAND "LUPREC" 4 "osnap" "None" "UCS" "W")
;----------------------------------------------
(defun *ERROR* (Msg)
(princ "\nError: ") (princ Msg)
(unload_dialog Dial)
(Restore)
(princ)
)
;---------------------------------------------
(setq Dial (load_dialog "Dien_tich_01.DCL"))
(setq What_next 2)
(while (> What_next 1)
(if (not (new_dialog "Dientich01" Dial))
(progn (Restore) (exit))
)
(Setloc)
(action_tile "tle" "(Get_tle)")
(action_tile "ten" "(Get_ten)")
(action_tile "cdon" "(Get_cdon)")

(action_tile "t1" "(Get_t1)")
(action_tile "t2" "(Get_t2)")
(action_tile "t3" "(Get_t3)")
(action_tile "t4" "(Get_t4)")
(action_tile "t5" "(Get_t5)")
(action_tile "t6" "(Get_t6)")
(action_tile "t7" "(Get_t7)")
(action_tile "t8" "(Get_t8)")
(action_tile "t9" "(Get_t9)")
(action_tile "t10" "(Get_t10)")

(action_tile "e1" "(Get_e1)")
(action_tile "e2" "(Get_e2)")
(action_tile "e3" "(Get_e3)")
(action_tile "e4" "(Get_e4)")
(action_tile "e5" "(Get_e5)")
(action_tile "e6" "(Get_e6)")
(action_tile "e7" "(Get_e7)")
(action_tile "e8" "(Get_e8)")
(action_tile "e9" "(Get_e9)")
(action_tile "e10" "(Get_e10)")

(action_tile "p1" "(done_dialog 2)")
(action_tile "p2" "(done_dialog 3)")
(action_tile "p3" "(done_dialog 4)")
(action_tile "p4" "(done_dialog 5)")
(action_tile "p5" "(done_dialog 6)")
(action_tile "p6" "(done_dialog 7)")
(action_tile "p7" "(done_dialog 8)")
(action_tile "p8" "(done_dialog 9)")
(action_tile "p9" "(done_dialog 10)")
(action_tile "p10" "(done_dialog 11)")
(action_tile "excel" "(done_dialog 12)")
(action_tile "Accept" "(done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq What_next (start_dialog))
(cond
((= What_next 1) (Go))
((= What_next 2) (Get_p1))
((= What_next 3) (Get_p2))
((= What_next 4) (Get_p3))
((= What_next 5) (Get_p4))
((= What_next 6) (Get_p5))
((= What_next 7) (Get_p6))
((= What_next 8) (Get_p7))
((= What_next 9) (Get_p8))
((= What_next 10) (Get_p9))
((= What_next 11) (Get_p10))
((= What_next 12) (WriteToExcel))
)
)
(unload_dialog Dial)
(Restore)
(princ)
)
;;;--------------------------------------------------------------
(defun dientich (/ bli cmd E Eo En do diem s oldcolor nam Enam)
(setq do nil s nil Ename (ssadd))
(setq E "P") (initget 128 "P S")
(setq Eo (getkword "\nSelect Entity or Pick Point (S/<P>) : "))
(if Eo (setq E Eo))
(cond
((= E "P")
(command "color" 112 "linetype" "S" "hidden" "" "osmode" 0)
(while
(setq diem (getpoint "\n Pick point...(<Retern> to end) :"))
(command "boundary" diem "" "area" "E" "L")
(setq s (getvar "area"))
(setq do (cons s do))
(setq name (entlast))
(setq Ename (ssadd name Ename))
)
(setq Sdo (eval (cons + do)))
(command "erase" Ename "" "color" "Bylayer" "linetype" "S" "continuous" "")
)
(T
(setq En (ssget))
(command "area" "E" En)
(setq Sdo (getvar "area"))
)
)
(setq tile (/ tle 100))
(cond
((= What_next 2) (setq dt1 (* Sdo tile tile)))
((= What_next 3) (setq dt2 (* Sdo tile tile)))
((= What_next 4) (setq dt3 (* Sdo tile tile)))
((= What_next 5) (setq dt4 (* Sdo tile tile)))
((= What_next 6) (setq dt5 (* Sdo tile tile)))
((= What_next 7) (setq dt6 (* Sdo tile tile)))
((= What_next 8) (setq dt7 (* Sdo tile tile)))
((= What_next 9) (setq dt8 (* Sdo tile tile)))
((= What_next 10) (setq dt9 (* Sdo tile tile)))
((= What_next 11) (setq dt10 (* Sdo tile tile)))
)
)
;;;--------------------------------------------------------------
(defun Go (/ p Enam Ena m n)
(SETQ P (GETPOINT "\nStart point...: "))
(setq oblist (ssadd))
(if (> dt1 0)
(progn
(command "text" "J" "R" p "0" (strcat "S " e1 " (m2) ="))
; (setq obl (entlast) oblist (ssadd obl oblist))
(command "text" (polar p 0.0 (getvar "Textsize")) "0" (rtos dt1 2 3))
; (setq obl (entlast) oblist (ssadd obl oblist))
; (command "attdef" "" e1 e1 dt1 (polar p 0.0 (getvar "Textsize")) "")
; (setq obl (entlast) oblist (ssadd obl oblist))
(setq p (polar p (- (/ pi 2)) (* (getvar "Textsize") 2.0)))
)
)
(if (> dt2 0)
(progn
(command "text" "J" "R" p "0" (strcat "S " e2 " (m2) ="))
(command "text" (polar p 0.0 (getvar "Textsize")) "0" (rtos dt2 2 3))
(setq p (polar p (- (/ pi 2)) (* (getvar "Textsize") 2.0)))
)
)
(if (> dt3 0)
(progn
(command "text" "J" "R" p "0" (strcat "S " e3 " (m2) ="))
(command "text" (polar p 0.0 (getvar "Textsize")) "0" (rtos dt3 2 3))
(setq p (polar p (- (/ pi 2)) (* (getvar "Textsize") 2.0)))
)
)
(if (> dt4 0)
(progn
(command "text" "J" "R" p "0" (strcat "S " e4 " (m2) ="))
(command "text" (polar p 0.0 (getvar "Textsize")) "0" (rtos dt4 2 3))
(setq p (polar p (- (/ pi 2)) (* (getvar "Textsize") 2.0)))
)
)
(if (> dt5 0)
(progn
(command "text" "J" "R" p "0" (strcat "S " e5 " (m2) ="))
(command "text" (polar p 0.0 (getvar "Textsize")) "0" (rtos dt5 2 3))
(setq p (polar p (- (/ pi 2)) (* (getvar "Textsize") 2.0)))
)
)
(if (> dt6 0)
(progn
(command "text" "J" "R" p "0" (strcat "S " e6 " (m2) ="))
(command "text" (polar p 0.0 (getvar "Textsize")) "0" (rtos dt6 2 3))
(setq p (polar p (- (/ pi 2)) (* (getvar "Textsize") 2.0)))
)
)
(if (> dt7 0)
(progn
(command "text" "J" "R" p "0" (strcat "S " e7 " (m2) ="))
(command "text" (polar p 0.0 (getvar "Textsize")) "0" (rtos dt7 2 3))
(setq p (polar p (- (/ pi 2)) (* (getvar "Textsize") 2.0)))
)
)
(if (> dt8 0)
(progn
(command "text" "J" "R" p "0" (strcat "S " e8 " (m2) ="))
(command "text" (polar p 0.0 (getvar "Textsize")) "0" (rtos dt8 2 3))
(setq p (polar p (- (/ pi 2)) (* (getvar "Textsize") 2.0)))
)
)
(if (> dt9 0)
(progn
(command "text" "J" "R" p "0" (strcat "S " e9 " (m2) ="))
(command "text" (polar p 0.0 (getvar "Textsize")) "0" (rtos dt9 2 3))
(setq p (polar p (- (/ pi 2)) (* (getvar "Textsize") 2.0)))
)
)
(if (> dt10 0)
(progn
(command "text" "J" "R" p "0" (strcat "S " e10 " (m2) ="))
(command "text" (polar p 0.0 (getvar "Textsize")) "0" (rtos dt10 2 3))
(setq p (polar p (- (/ pi 2)) (* (getvar "Textsize") 2.0)))
)
)
; (command "Block" "Du" "Y" p oblist "")
(setq Enam (ssget "X" '((0 . "LWPOLYLINE") (62 . 112) (6 . "HIDDEN"))))
(setq m 0)
(repeat (sslength Enam)
(setq Ena (ssname Enam m))
(command "_erase" Ena "")
(setq m (+ m 1))
)
(COMMAND "LUPREC" 4 "osmode" 33 "linetype" "S" "Continuous" "" "OOPS")
)
;;;-----------------------------------------------------------------------------
(defun WriteToExcel (/ *ExcelApp% lst_data cviec Cell& i)
(setq lst_data '() cviec '())
(setq lst_data (cons ten lst_data) lst_data (cons (rtos cdon 2 2) lst_data))
(if (> dt1 0) (setq lst_data (cons (rtos dt1 2 3) lst_data)))
(if (> dt2 0) (setq lst_data (cons (rtos dt2 2 3) lst_data)))
(if (> dt3 0) (setq lst_data (cons (rtos dt3 2 3) lst_data)))
(if (> dt4 0) (setq lst_data (cons (rtos dt4 2 3) lst_data)))
(if (> dt5 0) (setq lst_data (cons (rtos dt5 2 3) lst_data)))
(if (> dt6 0) (setq lst_data (cons (rtos dt6 2 3) lst_data)))
(if (> dt7 0) (setq lst_data (cons (rtos dt7 2 3) lst_data)))
(if (> dt8 0) (setq lst_data (cons (rtos dt8 2 3) lst_data)))
(if (> dt9 0) (setq lst_data (cons (rtos dt9 2 3) lst_data)))
(if (> dt10 0) (setq lst_data (cons (rtos dt10 2 3) lst_data)))
(setq lst_data (reverse lst_data))

(setq cviec (cons "M.Cat" cviec) cviec (cons "C.Don" cviec))
(if (> dt1 0) (setq cviec (cons e1 cviec)))
(if (> dt2 0) (setq cviec (cons e2 cviec)))
(if (> dt3 0) (setq cviec (cons e3 cviec)))
(if (> dt4 0) (setq cviec (cons e4 cviec)))
(if (> dt5 0) (setq cviec (cons e5 cviec)))
(if (> dt6 0) (setq cviec (cons e6 cviec)))
(if (> dt7 0) (setq cviec (cons e7 cviec)))
(if (> dt8 0) (setq cviec (cons e8 cviec)))
(if (> dt9 0) (setq cviec (cons e9 cviec)))
(if (> dt10 0) (setq cviec (cons e10 cviec)))
(setq cviec (reverse cviec))
(vl-load-com)
(if
(or
(not (setq *ExcelApp% (vlax-get-object "Excel.Application")))
(= (vla-get-visible *ExcelApp%) :vlax-false)
)
(progn
(setq *ExcelApp% (vlax-get-or-create-object "Excel.Application"))
(vlax-invoke-method (vlax-get-property *ExcelApp% 'WorkBooks) 'Add)
(vla-put-visible *ExcelApp% :vlax-true)
)
)
(setq i 1)
(while (/= (getcell (strcat "A" (itoa i))) "")
(setq i (1+ i))
)
; (alert (strcat "So dong hien tai: " (rtos i 2 0)))
(setq Cell& (strcat "A" (itoa i)))
(putcell Cell& cviec)
(setq Cell& (strcat "A" (itoa (+ i 1))))
(putcell Cell& lst_data)
)
;-------------------------------------------------------------------------------
; GetCell - Returns the cell value from the *ExcelData@ list
; Arguments: 1
; Cell$ = Cell ID
; Syntax example: (GetCell "E19") = value of cell E19
;-------------------------------------------------------------------------------
(defun GetCell (Cell$ / ExcelRange^ ExcelVariant^ )
(setq ExcelRange^ (vlax-get-property *ExcelApp% "Range" Cell$))
(setq ExcelVariant^ (vlax-get-property ExcelRange^ 'Value))
(setq ExcelValue (vlax-variant-value ExcelVariant^))
(setq ExcelValue
(cond
((= (type ExcelValue) 'INT) (itoa ExcelValue))
((= (type ExcelValue) 'REAL) (rtosr ExcelValue))
((= (type ExcelValue) 'STR) (vl-string-trim " " ExcelValue))
((/= (type ExcelValue) 'STR) "")
);cond
);setq
ExcelValue
);defun GetCell
;-------------------------------------------------------------------------------
; PutCell - Put values into Excel cells
; Arguments: 2
; StartCell$ = Starting Cell ID
; Data@ = Value or list of values
; Syntax examples:
; (PutCell "A1" "PART NUMBER") = Puts PART NUMBER in cell A1
; (PutCell "B3" '("Dim" 7.5 "9.75")) = Starting with cell B3 put Dim, 7.5, and 9.75 across
;-------------------------------------------------------------------------------
(defun PutCell (StartCell$ Data@ / Cell$ Column# ExcelRange Row#)
(if (= (type Data@) 'STR)
(setq Data@ (list Data@))
)
(setq ExcelRange (vlax-get-property *ExcelApp% "Cells"))
(if (Cell-p StartCell$)
(setq Column# (car (ColumnRow StartCell$))
Row# (cadr (ColumnRow StartCell$))
);setq
(if (vl-catch-all-error-p
(setq Cell$ (vl-catch-all-apply 'vlax-get-property
(list (vlax-get-property *ExcelApp% "ActiveSheet") "Range" StartCell$))
);setq
);vl-catch-all-error-p
(alert (strcat "The cell ID \"" StartCell$ "\" is invalid."))
(setq Column# (vlax-get-property Cell$ "Column")
Row# (vlax-get-property Cell$ "Row")
);setq
);if
);if
(if (and Column# Row#)
(foreach Item Data@
(vlax-put-property ExcelRange "Item" Row# Column# (vl-princ-to-string Item))
(setq Column# (1+ Column#))
);foreach
);if
(princ)
);defun PutCell
;-------------------------------------------------------------------------------
(defun ColumnRow (Cell$ / Column$ Char$ Row#)
(setq Column$ "")
(while (< 64 (ascii (setq Char$ (strcase (substr Cell$ 1 1)))) 91)
(setq Column$ (strcat Column$ Char$)
Cell$ (substr Cell$ 2)
);setq
);while
(if (and (/= Column$ "") (numberp (setq Row# (read Cell$))))
(list (Alpha2Number Column$) Row#)
'(1 1);default to "A1" if there's a problem
);if
);defun ColumnRow
;-------------------------------------------------------------------------------
; Cell-p - Evaluates if the argument Cell$ is a valid cell ID
; Function By: Gilles Chanteau from Marseille, France
; Arguments: 1
; Cell$ = String of the cell ID to evaluate
; Syntax examples: (Cell-p "B12") = t, (Cell-p "BT") = nil
;-------------------------------------------------------------------------------
(defun Cell-p (Cell$)
(and (= (type Cell$) 'STR)
(or (= (strcase Cell$) "A1")
(not (equal (ColumnRow Cell$) '(1 1)))
);or
);and
);defun Cell-p
;-------------------------------------------------------------------------------
(defun rtosr (RealNum~ / DimZin# ShortReal$)
(setq DimZin# (getvar "DIMZIN"))
(setvar "DIMZIN" 8)
(setq ShortReal$ (rtos RealNum~ 2 8))
(setvar "DIMZIN" DimZin#)
ShortReal$
);defun rtosr
;-------------------------------------------------------------------------------
; Alpha2Number - Converts Alpha string into Number
; Function By: Gilles Chanteau from Marseille, France
; Arguments: 1
; Str$ = String to convert
; Syntax example: (Alpha2Number "ABC") = 731
;-------------------------------------------------------------------------------
(defun Alpha2Number (Str$ / Num#)
(if (= 0 (setq Num# (strlen Str$)))
0
(+ (* (- (ascii (strcase (substr Str$ 1 1))) 64) (expt 26 (1- Num#)))
(Alpha2Number (substr Str$ 2))
);+
);if
);defun Alpha2Number
;-------------------------------------------------------------------------------
; Number2Alpha - Converts Number into Alpha string
; Function By: Gilles Chanteau from Marseille, France
; Arguments: 1
; Num# = Number to convert
; Syntax example: (Number2Alpha 731) = "ABC"
;-------------------------------------------------------------------------------
(defun Number2Alpha (Num# / Val#)
(if (< Num# 27)
(chr (+ 64 Num#))
(if (= 0 (setq Val# (rem Num# 26)))
(strcat (Number2Alpha (1- (/ Num# 26))) "Z")
(strcat (Number2Alpha (/ Num# 26)) (chr (+ 64 Val#)))
);if
);if
);defun Number2Alpha

<<

Filename: 222288_%3Cspan+clas.lsp
Tác giả: nguyentuyen6
Bài viết gốc: 109881
Tên lệnh: rot
[Hỏi] Cùng nhau học LISP
Mình có đoạn líp như thế này để test mấy cái hàm con dùng cho tiện



Thì khi chạy nó lại báo lỗi : ; error: bad argument type: lentityp nil

Có bác nào sửa giúp mình với.

Filename: 109881_rot.lsp
Tác giả: Tue_NV
Bài viết gốc: 109895
Tên lệnh: rot
[Hỏi] Cùng nhau học LISP
......
Nhưng khi mình muốn khái quát hơn nữa cái hàm moddxf lên 1 bậc bằng cách sửa thành:


Filename: 109895_rot.lsp
Tác giả: vndesperados
Bài viết gốc: 3663
Tên lệnh: toado
Viết Lisp theo yêu cầu


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

Filename: 3663_toado.lsp
Tác giả: huunhantvxdts
Bài viết gốc: 226976
Tên lệnh: test
How would you like the money? buy sulfasalazine "Especially in China there is a desire for quality, whichcustomers there value," Huesges said, adding Loewe aimed toin

Filename: 226976_test.lsp
Tác giả: nhoclangbat
Bài viết gốc: 226986
Tên lệnh: kk
Sorry, I ran out of credit aricept side effects 5mg Eventually, if enough people use these services, it could also help cut down pollution.


Filename: 226986_kk.lsp
Tác giả: khaosatheco
Bài viết gốc: 227294
Tên lệnh: rot
[Nhờ chỉnh sửa] lisp xoay text theo pline

Mình tìm trên diễn đàn thấy có lsp xoay text song song với 1 đối tượng khác (là góc nhập vào hoặc 1 đoạn thẳng cho trước).

;; free lisp from cadviet.com ;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/8335-xoay-mot-doi-tuong-song-song-voi-1-doi-tuong-khac/ (defun c:Rot(/ chon goc ts dem ten ) ;--------------Text rotate ----------------------- (prompt...
>>

Mình tìm trên diễn đàn thấy có lsp xoay text song song với 1 đối tượng khác (là góc nhập vào hoặc 1 đoạn thẳng cho trước).

;; free lisp from cadviet.com ;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/8335-xoay-mot-doi-tuong-song-song-voi-1-doi-tuong-khac/ (defun c:Rot(/ chon goc ts dem ten ) ;--------------Text rotate ----------------------- (prompt "\nChon doi tuong can quay: ") (setq chon (ssget)) (if (= t (null chon)) (prompt "Ban chua chon doi tuong nao. Lenh ket thuc.") (progn (if (null goc) (setq goc 0)) (prompt "Nhap goc quay doi tuong ") (princ "<")(princ (angtos goc)) (princ ">: ") (setq goc (getangle)) (setq ts (sslength chon)) (setq dem 0) (while (< dem ts) (progn (setq ten (entget (ssname chon dem))) (setq ten (subst (cons 50 goc) (assoc 50 ten) ten )) (entmod ten) (setq dem (+ 1 dem)) ) ) ) ) (princ) )  

 

Nhờ các anh trên diễn đàn chỉnh sửa với yêu cầu: Xoay text chọn theo đường pl cho trước (đường pl này gồm nhiều đoạn gãy khúc). Các text nằm gần đoạn nào sẽ được xoay song song với đoạn thẳng đó (có file mẫu đính kèm) http://www.cadviet.c..._file_mau_3.dwg.

Rất mong các anh ra tay giúp đỡ.


<<

Filename: 227294_rot.lsp
Tác giả: only102
Bài viết gốc: 187432
Tên lệnh: laycur 5
LISP Cập nhật đối tượng vào layer hiện hành

Mình có lisp này, khi thực hiện lệnh, sẽ cập nhật đối tượng vào layer hiện hành. Nhưng nó chỉ cho phép chuyển layer, còn màu sắc của đối tượng vẫn không thay đổi. Mình muốn thêm phần tự động chuyển màu về bylayer khi thực hiện lệnh này. Mong các bạn sửa giúp mình!
Cảm ơn rất nhiều!

;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
(Defun LAYCUR (/ SS CNT...
>>
Mình có lisp này, khi thực hiện lệnh, sẽ cập nhật đối tượng vào layer hiện hành. Nhưng nó chỉ cho phép chuyển layer, còn màu sắc của đối tượng vẫn không thay đổi. Mình muốn thêm phần tự động chuyển màu về bylayer khi thực hiện lệnh này. Mong các bạn sửa giúp mình!
Cảm ơn rất nhiều!

;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
(Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
(if (not (setq SS (ssget "i")))
(progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
(setq SS (ssget)) ) )
(if SS (progn
(setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " Doi tuong tim thay.")) (command "_.move" SS "")
(if (> (getvar "cmdactive") 0)
(progn
(command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
(setq SS nil) ) (if (> CNT 0)
(princ (strcat "\n" (itoa CNT) " Doi tuong tren layer LOCK.")) ) ) )
(if SS (progn
(setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
(if (= (sslength SS) 1)
(prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
(prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
(defun c:LAYCUR () (laycur)) (defun c:5 () (laycur))

<<

Filename: 187432_laycur_5.lsp
Tác giả: khaosatheco
Bài viết gốc: 227291
Tên lệnh: rot
[Nhờ chỉnh sửa] lisp xoay text theo pline
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/8335-xoay-mot-doi-tuong-song-song-voi-1-doi-tuong-khac/
(defun c:Rot(/ chon goc ts dem ten ) ;--------------Text rotate -----------------------

(prompt "\nChon doi tuong can quay: ")

(setq chon (ssget))

(if (= t (null chon)) (prompt "Ban chua chon doi tuong nao. Lenh...
>>
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/8335-xoay-mot-doi-tuong-song-song-voi-1-doi-tuong-khac/
(defun c:Rot(/ chon goc ts dem ten ) ;--------------Text rotate -----------------------

(prompt "\nChon doi tuong can quay: ")

(setq chon (ssget))

(if (= t (null chon)) (prompt "Ban chua chon doi tuong nao. Lenh ket thuc.")

(progn

(if (null goc) (setq goc 0))

(prompt "Nhap goc quay doi tuong ")

(princ "<")(princ (angtos goc)) (princ ">: ")

(setq goc (getangle))

(setq ts (sslength chon))

(setq dem 0)

(while (< dem ts)

(progn

(setq ten (entget (ssname chon dem)))

(setq ten (subst (cons 50 goc) (assoc 50 ten) ten ))

(entmod ten)

(setq dem (+ 1 dem))

)

)

)

)

(princ)

)


<<

Filename: 227291_rot.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 227391
Tên lệnh: xotxt
lisp xoay text theo pline

Ơ ơ.. Ketxu ơi. Trong bản vẽ mẫu là vẽ pl từ trái qua phải -> ok. Nhờ anh bổ sung thêm nếu vẽ pl từ phải qua trái thì text xoay song song với pl theo hướng vẽ pl. 

Hề hề hề,

Đây là code mình chỉnh sửa lại. Bạn hãy test thử coi sao:

 

Chúc bạn vui.

Filename: 227391_xotxt.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 1347
Tên lệnh: %3Cspan+clas
convert anonymous block to normal block
hôm nay gặp một bài toán khó, là hiệu chỉnh một block anonymous. Ví dụ trong file này: http://www.cadviet.com/upfiles/new_block3.zip

AutoCAD không cho chỉnh sửa block anonymous (là block có tên đầu bằng *, vd *U123).
May thay, tìm kiếm được lisp đổi block anonymous sang block bình thường tại trang http://www.draftsperson.net
dùng lệnh UnAnon hoặc UnAnonAll để biến một hoặc tất cả các block anonymous.
>>
hôm nay gặp một bài toán khó, là hiệu chỉnh một block anonymous. Ví dụ trong file này: http://www.cadviet.com/upfiles/new_block3.zip

AutoCAD không cho chỉnh sửa block anonymous (là block có tên đầu bằng *, vd *U123).
May thay, tìm kiếm được lisp đổi block anonymous sang block bình thường tại trang http://www.draftsperson.net
dùng lệnh UnAnon hoặc UnAnonAll để biến một hoặc tất cả các block anonymous.

Và sau đó dùng lệnh bedit hoặc refedit để hiệu chỉnh nó.
<<

Filename: 1347_%3Cspan+clas.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 227406
Tên lệnh: xotxt
lisp xoay text theo pline

Còn 1 số text không xoay được (các txt nằm gần đỉnh đường pl). Nhờ anh Binh kiểm tra.

 

Hề hề hề,

Thực ra các text này đã xoay với góc xoay bằng 0 độ đó. Lý do là điểm gần nhất trên polyline...

>>

Còn 1 số text không xoay được (các txt nằm gần đỉnh đường pl). Nhờ anh Binh kiểm tra.

 

Hề hề hề,

Thực ra các text này đã xoay với góc xoay bằng 0 độ đó. Lý do là điểm gần nhất trên polyline đối với điểm đăt của text trùng với đỉnh của polyline. Do vậy các điểm pa1 và pa2 là trùng nhau và góc là 0 độ.

Mình đã chỉnh sửa lại một chút để các text này xoay theo chiều đoạn polyline kế tiếp. Bạn check lại nhé.

Chúc bạn vui.

<<

Filename: 227406_xotxt.lsp
Tác giả: Tue_NV
Bài viết gốc: 227457
Tên lệnh: cchu
Canh lề cho Text theo nội dung

Có cách nào canh các text thẳng hàng theo dấu "/" không hả các bác?
 
99835_canhletext_1.png

 
 
File chạy thử :
http://www.cadviet.com/upfiles/3/4652_canhchu_1.dwg
 
Ý tưởng nằm trong...

>>

Có cách nào canh các text thẳng hàng theo dấu "/" không hả các bác?
 
99835_canhletext_1.png

 
 
File chạy thử :
http://www.cadviet.com/upfiles/3/4652_canhchu_1.dwg
 
Ý tưởng nằm trong code :


<<

Filename: 227457_cchu.lsp
Tác giả: LoveLisp
Bài viết gốc: 227473
Tên lệnh: cchu
[Hỏi khó] Canh lề cho Text theo nội dung

Hay quá, thật tuyệt vời! Hoàn toàn đáp ứng được yêu cầu!

Tuy nhiên, mình có chỉnh sửa lại code một tý, khi pick nhiều lần thì nó lại gặp lỗi bác ạ! Mong bác xem giúp.

 

;http://www.cadviet.com/forum/topic/69074-hoi-kho-canh-le-cho-text-theo-noi-dung/

Xin lỗi, thanh công cụ bị mất cặp dấu code...

>>

Hay quá, thật tuyệt vời! Hoàn toàn đáp ứng được yêu cầu!

Tuy nhiên, mình có chỉnh sửa lại code một tý, khi pick nhiều lần thì nó lại gặp lỗi bác ạ! Mong bác xem giúp.

 

;http://www.cadviet.com/forum/topic/69074-hoi-kho-canh-le-cho-text-theo-noi-dung/

Xin lỗi, thanh công cụ bị mất cặp dấu code rồi, mình không đưa nó vào mã lisp được!


<<

Filename: 227473_cchu.lsp
Tác giả: nhoclangbat
Bài viết gốc: 227153
Tên lệnh: mtll
[Yêu cầu] Lisp tạo viewport từ khung chọn bên model.

nhoc chỉ biết thêm màu mè thui ^^, set layer cho khung view đó, khóa khung view sau khi tạo, thay đổi cách nhập tỉ lệ cho đở phải tính tóan nếu tỉ lệ lẻ ^^, như anh KangKung viết thì ví dụ tỉ lệ 1/500 thì chạy lsp sẽ hỏi khi đó bạn nhập là 0.5 tương đương 1/500 hay 0.1 = 1/100, nhoc sửa xíu bạn cứ nhập đúng tỉ lệ mún thể hiện nhập vào thẳng  200, 100 , 75 , 20  v...v. Bạn thử xem...

>>

nhoc chỉ biết thêm màu mè thui ^^, set layer cho khung view đó, khóa khung view sau khi tạo, thay đổi cách nhập tỉ lệ cho đở phải tính tóan nếu tỉ lệ lẻ ^^, như anh KangKung viết thì ví dụ tỉ lệ 1/500 thì chạy lsp sẽ hỏi khi đó bạn nhập là 0.5 tương đương 1/500 hay 0.1 = 1/100, nhoc sửa xíu bạn cứ nhập đúng tỉ lệ mún thể hiện nhập vào thẳng  200, 100 , 75 , 20  v...v. Bạn thử xem ^^

;========LISP TAO VIEWPORT TREN LAYOUT BANG CACH CHON O MODEL======== ;=========================REV4ii===================================== (defun C:mtll( / os lst khung X_min Y_min X_max Y_max X index taphop tyle) (command "-layer" "m" "khung" "c" 3 "khung" "") (command "UNDO" "BE") (setq os(getvar "OSMODE")) (setvar "OSMODE" 0) (setq taphop(ssget )) (setq Tyle (getreal (strcat "\n Ty le 1/ <1000>: "))) (if (= Tyle nil) (setq Tyle 1000)) (setq soluong (sslength taphop)) (setq index 0) (command "LAYOUT" "N" "Layout1") (command "LAYOUT" "S" "Layout1") (command "ERASE" "ALL" "") (command "MODEL") (setq X 0) (command "ZOOM" "E") (while (< index soluong) (setq khung(ssname taphop index)) (setq lst(acet-geom-vertex-list khung)) (setq X_min 1000000000 Y_min 1000000000 X_max -1000000000 Y_max -1000000000) (foreach a lst (if (< (car a) X_min) (setq X_min (car a))) (if (< (cadr a) Y_min) (setq Y_min (cadr a))) (if (> (car a) X_max) (setq X_max (car a))) (if (> (cadr a) Y_max) (setq Y_max (cadr a))) ) (command "LAYOUT" "S" "Layout1") (command "ZOOM" "W" (list X_min Y_min) (list X_max Y_max)) (command "PLINE") (foreach a lst (command a)) (command "C") (command "MOVE" (entlast) "" (list X_min Y_min) (list X 0)) (command "ZOOM" "W" (list 0 0) (list (+ X 100) 0)) (command "SCALE" (entlast) "" (list X 0) (/ 1000 tyle)) (command "MVIEW" "O" (entlast)) (command "MSPACE") (command "ZOOM" (list X_min Y_min) (list X_max Y_max)) (command "PSPACE") (command "MVIEW" "L" "on" (entlast) "") (setq X(+ X 50 (/ (- X_max X_min) (/ tyle 1000)))) (command "ZOOM" "W" (list 0 0) (list (+ X 100) 0)) (setq index (+ index 1)) ) (command "MODEL") (command "UNDO" "END") (setvar "OSMODE" os) (princ) )
<<

Filename: 227153_mtll.lsp

Trang 119/330

119