Jump to content
InfoFile
Tác giả: ketxu
Bài viết gốc: 123837
Tên lệnh: xg
Viết lisp theo yêu cầu [phần 2]


Explode toàn bộ group thì bạn thử dùng dòng này xem sao


P/S bác Sờ Trít : các hàm ACET ấy sao e tìm thấy mỗi tí nhỉ :leluoi:

Filename: 123837_xg.lsp
Tác giả: 840244
Bài viết gốc: 183615
Tên lệnh: htt
Đặt chiều cao text, mtext và chỉnh Linetype scale ?
hì.Ngon rồi. Lúc em post yêu cầu lên em có post thêm cái dòng nhờ anh cho thêm cái dòng lệnh hiển thị chiều cao text hiện tại để mình tiện so sánh ( nếu nó có nhiều text được chọn có chiều cao khác nhau thì hiển thị cái đầu tiên được chọn ) nhưng chắc do mạng lỗi sao ý nên nó không cập nhật được. hic hic ! Lúc nào rảnh anh thêm giúp em nhé ! Thanks anh nhiều ạ !
Em thêm cái dòng đó vào...
>>
hì.Ngon rồi. Lúc em post yêu cầu lên em có post thêm cái dòng nhờ anh cho thêm cái dòng lệnh hiển thị chiều cao text hiện tại để mình tiện so sánh ( nếu nó có nhiều text được chọn có chiều cao khác nhau thì hiển thị cái đầu tiên được chọn ) nhưng chắc do mạng lỗi sao ý nên nó không cập nhật được. hic hic ! Lúc nào rảnh anh thêm giúp em nhé ! Thanks anh nhiều ạ !
Em thêm cái dòng đó vào mà ko đc. hì

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=60254&pid=183606&st=0&#entry183606
;Doan Van Ha - CADViet.com. 27-11-2011. Thay doi chieu cao Text/Mtext.
(defun C:HTT (/ ss i hei)
(vl-load-com)
(setq i 0)
(princ "\nChon cac Text/Mtext can thay doi chieu cao...")
(setq ss (ssget '((-4 . "<OR") (0 . "MTEXT") (0 . "TEXT") (-4 . "OR>"))))
(if ss
(progn
(or size (setq size (getvar "textsize")))
(prompt (strcat "\nChieu cao chu hien tai = " (rtos size 2 2)))
(setq hei (getdist (strcat "\nChieu cao moi <" (rtos size 2) ">: ")))
(if (= hei nil) (setq hei size) (setq size hei))
(repeat (sslength ss)
(vla-put-height (vlax-ename->vla-object (ssname ss i)) hei)
(setq i (1+ i)))))
(princ))


<<

Filename: 183615_htt.lsp
Tác giả: Doan Van Ha
Bài viết gốc: 204828
Tên lệnh: ha
[Yêu cầu] Lisp chọn nhanh block cùng nội dung ATT

Lisp chọn các Block theo: NameBlock + TagAtt + ValueAtt

P/S: đã hiệu chỉnh để tránh chọn nhầm đối tượng

Filename: 204828_ha.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 204769
Tên lệnh: datbl
Xin lisp về đếm block

Hề hề hề,
Code nháp cho bạn xem có đúng ý không nhé:

Chúc bạn vui.

Filename: 204769_datbl.lsp
Tác giả: mathan
Bài viết gốc: 204965
Tên lệnh: tdn
[Nhờ chỉnh sửa]Lisp thống kê tọa độ TDN.lisp
Bạn dùng thử xem sao

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=12702
(prompt"\n - THONG KE TOA DO by Thaistreetz - huuthais@yahoo.com\n")
----------------------------------------------
(defun C:tdn ()
(setvar "cmdecho" 0 )
(command "Undo" "Begin")
(setq om (getvar "osmode"))
(if (not h) (setq h 1))
(setq...
>>
Bạn dùng thử xem sao

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=12702
(prompt"\n - THONG KE TOA DO by Thaistreetz - huuthais@yahoo.com\n")
----------------------------------------------
(defun C:tdn ()
(setvar "cmdecho" 0 )
(command "Undo" "Begin")
(setq om (getvar "osmode"))
(if (not h) (setq h 1))
(setq caot1 (getreal (strcat "\nCao text < " (rtos h 2 2) " >:")))
(if caot1 (setq h caot1))
(setq tapx '() tapy '() stt '())
(setq bit1 (cond (bit1) ("Yes")))
(initget "Yes No")
(setq Tmp1 (strcat "\nTu dong ghi ten nut? <" bit1 ">: ")
bit1 (cond ((getkword Tmp1)) (bit1)))
(if (eq bit1 "Yes")
(progn
(setq ten (getstring "\nTen Nut:"))
(if (not i) (setq i 1))
(setq i1 (getreal (strcat"\nSTT cua nut bat dau < " (rtos i 2 0) " >: ")))
(if i1 (setq i i1))
(setvar "osmode" 125)
(setq lacol (getvar "CEColor") k (- i 1))
(While
(setq D1 (getpoint (strcat"\nPick diem thu "(rtos (+ k 1) 2 0)"")))
(Progn
(setvar "osmode" 0)
(setq DX (getpoint (strcat"\nDiem dat text thu "(rtos (+ k 1) 2 0)"") D1)
DY (getpoint (strcat"\nHuong goc nghieng cua text "(rtos (+ k 1) 2 0)"") Dx)
angr (angle Dx Dy)
angd (/ (* 180 angr) pi)
x (rtos (car D1) 2 4)
y (rtos (cadr D1) 2 4)
TX (strcat "X:"(rtos (Car D1) 2 4))
TY (strcat "Y:"(rtos (Cadr D1) 2 4))

tapx (append tapx (list x))
tapy (append tapy (list y))
k (+ 1 k)
N (strcat ten (rtos k 2 0))
stt (append stt (list N))
);setq
(setq dt (* 0.5 (- (strlen N) 2) h));;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(if (>= (car DY) (car DX))
(progn
(setq D2 (polar Dx angr (* 0.7 h)))
(command "text" "BL" D2 h angd tX)
(setq TB (textbox (entget(entlast)))
LC (car TB)
RC (cadr TB)
di (distance LC RC)
PT3 (polar D2 angr (+ di (* 0.4 h)))
pt4 (polar D2 (- angr (* pi 0.5)) (* 1.35 h))
pt5 (polar pt4 angr di)
C (polar PT3 0 (* 1.5 h))
);setq
(command "text" "F" PT4 PT5 h ty
"pline" D1 DX PT3 ""
"circle" (polar PT3 angr (+ (* 1.5 h ) dt)) (+ (* 1.5 h) dt)
"text" "m" (polar PT3 angr (+ (* 1.5 h) dt )) h angd N
"CECOLOR" 8
"circle" (polar PT3 angr (+ (* 1.5 h) dt)) (+ (* 1.35 h) dt)
);command
(setvar "CECOLOR" lacol)
);progn
);if
(if (< (car DY) (car DX))
(progn
(setq D2 (polar Dx angr (* 0.7 h)))
(command "text" "BR" D2 h (+ angd 180) tx)
(setq TB (textbox (entget(entlast)))
LC (car TB)
RC (cadr TB)
di (distance LC RC)
PT3 (polar D2 angr (+ di (* 0.4 h)))
pt4 (polar D2 (+ angr (* pi 0.5)) (* 1.35 h))
pt5 (polar pt4 angr di)
C (polar PT3 0 (* 1.5 h))
);setq
(command "text" "F" PT5 PT4 h TY
"pline" D1 DX PT3 ""
"circle" (polar PT3 angr (+ (* 1.5 h) dt)) (+ (* 1.5 h) dt)
"text" "m" (polar PT3 angr (+ (* 1.5 h) dt)) h (+ angd 180) N
"CECOLOR" 8
"circle" (polar PT3 angr (+ (* 1.5 h) dt)) (+ (* 1.35 h) dt)
);command
(setvar "CECOLOR" lacol)
);progn
);if
);progn
(setvar "osmode" 125)
);while
(setq i (+ k 1))
);progn
);if
(if (eq bit1 "No")
(progn
(setvar "osmode" 125)
(setq lacol (getvar "CEColor") i 1 k (- i 1))
(While
(setq D1 (getpoint (strcat"\nPick diem thu "(rtos (+ k 1) 2 0)"")))
(Progn
(setvar "osmode" 0)
(progn
(setq LOOP T)
(while (= LOOP T)
(while (null (setq ten (nentsel "\nChon mot text lam ten nut: ")))
(princ "\nChua tim thay doi tuong la text, chon lai !"));while
(setq Source_text (entget (car ten)))
(if (or (= (cdr (assoc '0 Source_text)) "TEXT")
(= (cdr (assoc '0 Source_text)) "MTEXT")
(= (cdr (assoc '0 Source_text)) "ATTRIB"));or
(progn
(setq N (cdr (assoc 1 Source_text)))
(setq LOOP nil));progn
(progn
(princ "Phai chon mot text lam ten nut !")
(setq LOOP T));progn
)if
);while
);progn
(setq DX (getpoint (strcat"\nDiem dat text cua nut "N"") D1)
DY (getpoint (strcat"\nHuong goc nghieng cua text") Dx)
angr (angle Dx Dy))
(setq angd (/ (* 180 angr) pi)
x (rtos (car D1) 2 4)
y (rtos (cadr D1) 2 4)
TX (strcat "X:"(rtos (Car D1) 2 4))
TY (strcat "Y:"(rtos (Cadr D1) 2 4))
tapx (append tapx (list x))
tapy (append tapy (list y))
k (+ 1 k)
stt (append stt (list N))
);setq
(setq dt (* 0.5 (- (strlen N) 2) h));;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(if (>= (car DY) (car DX))
(progn
(setq D2 (polar Dx angr (* 0.7 h)))
(command "text" "BL" D2 h angd tX)
(setq TB (textbox (entget(entlast)))
LC (car TB)
RC (cadr TB)
di (distance LC RC)
PT3 (polar D2 angr (+ di (* 0.4 h)))
pt4 (polar D2 (- angr (* pi 0.5)) (* 1.35 h))
pt5 (polar pt4 angr di)
C (polar PT3 0 (* 1.5 h))
);setq

(command "text" "F" PT4 PT5 h ty
"pline" D1 DX PT3 ""
"circle" (polar PT3 angr (+ (* 1.5 h) dt)) (+ (* 1.5 h) dt)
"text" "m" (polar PT3 angr (+ (* 1.5 h) dt)) h angd N
"CECOLOR" 8
"circle" (polar PT3 angr (+(* 1.5 h) dt)) (+ (* 1.35 h) dt)
);command
(setvar "CECOLOR" lacol)
);progn
);if
(if (< (car DY) (car DX))
(progn
(setq D2 (polar Dx angr (* 0.7 h)))
(command "text" "BR" D2 h (+ angd 180) tx)
(setq TB (textbox (entget(entlast)))
LC (car TB)
RC (cadr TB)
di (distance LC RC)
PT3 (polar D2 angr (+ di (* 0.4 h)))
pt4 (polar D2 (+ angr (* pi 0.5)) (* 1.35 h))
pt5 (polar pt4 angr di)
C (polar PT3 0 (* 1.5 h))
);setq

(command "text" "F" PT5 PT4 h TY
"pline" D1 DX PT3 ""
"circle" (polar PT3 angr (+ (* 1.5 h) dt)) (+ (* 1.5 h) dt)
"text" "m" (polar PT3 angr (+ (* 1.5 h) dt)) h (+ angd 180) N
"CECOLOR" 8
"circle" (polar PT3 angr (+ (* 1.5 h) dt)) (+ (* 1.35 h) dt)
);command
(setvar "CECOLOR" lacol)
);progn
);if
);progn
(setvar "osmode" 125)
);while
(setq i (+ k 1))
);progn
);if
(setq bit (cond (bit) ("Yes")))
(initget "Yes No")
(setq Tmp (strcat "\nXuat bang toa do? <" bit ">: ")
bit (cond ((getkword Tmp)) (bit)))
(if (eq bit "Yes")
(progn
(setq di (- di (* 0.4 h))
kc (* 2 di)
PT (getpoint"\nVi tri dat bang")
PTC (list (+ (* 2 kc) (- di h h h h) (car PT)) (cadr PT))
p1 (list (car PT) (+ (cadr PT)(* 2 h)))
p2 (list (car PTC) (+ (cadr PTC)(* 2 h)))
p3 (list (car p1) (+ (cadr p1)(* 2 h)))
p4 (list (car p2) (+ (cadr p2)(* 2 h)))
PTD (list (+ (/ di 2) (car PT)) (+ h (cadr PT)))
PTX (list (+ di (/ di 2) (- 0 h) (car PTD)) (cadr PTD))
PTY (list (+ kc (- h h h h) (car PTX)) (cadr PTX))
p11 (list (+ (/ di 2) (car p1)) (+ (* 1.1 h) (cadr p1)))
p22 (list (+ di (/ di 2) (- 0 h) (car p11)) (- (cadr p11) (* 0.1 h)))
p33 (list (+ kc (- h h h h) (car p22)) (cadr p22))
L1 (list (+ di (car p3))(cadr p3))
L2 (list (+ kc (- 0 h h)(car L1))(cadr L1))
PTB (list (+ (- (* 2 h)) (* 0.5 (+ (* 2 kc) di)) (car PT)) (+ (cadr P3) (* 1.8 h)))
n (length tapx)
k 0
);setq
(setvar "osmode" 0)
(command "CECOLOR" 3 "line" p1 p2 "" "line" p3 p4 "" "CECOLOR" 2
"text" "m" p11 h 0 "Ten diem"
"text" "m" p22 h 0 "Toa do X"
"text" "m" p33 h 0 "Toa do Y"
"text" "m" pTB (* 1.3 h) 0 "%&#186;ng thong ke toa do diem")
(while (< k n)
(setq xx (nth k tapx) yy (nth k tapy) tstt(nth k stt))
(command "CECOLOR" 2
"text" "m" PTD h 0 tstt
"text" "m" PTX h 0 xx
"text" "m" PTY h 0 yy
"CECOLOR" 3
"line" PT PTC "")
(setq PT (list (car PT) (- (cadr PT)(* 2 h)))
PTC (list (+ (* 2 kc) (- di h h h h) (car PT)) (cadr PT))
PTD (list (+ (/ di 2) (car PT)) (+ h (cadr PT)))
PTX (list (+ di (/ di 2) (- 0 h) (car PTD)) (cadr PTD))
PTY (list (+ kc (- h h h h) (car PTX)) (cadr PTX))
k (+ 1 k));setq
);while
(if (= k n)
(setq PT (list (car PT) (+ (cadr PT)(* 2 h)))
PTC (list (+ (* 2 kc) (- di h h h h) (car PT)) (cadr PT))
L11 (list (+ di (car PT))(cadr PT))
L22 (list (+ kc (- 0 h h) (car L11))(cadr L11))
);setq
);if
(command "CECOLOR" 3
"line" p3 PT ""
"line" p4 PTC ""
"line" L1 L11 ""
"line" L2 L22 "")
);progn
);if
(setvar "CECOLOR" lacol)
(setvar "osmode" om)
(prompt"\n by Thaistreetz - huuthais@yahoo.com\n")
(command "Undo" "End")
(setvar "cmdecho" 1)
(princ)
);DONG toa do

Trong đó có dòng (setq dt (* 0.5 (- (strlen N) 2) h)) để điểu chỉnh độ to của vòng tròn theo chiều dài tên Nút
Nếu muốn bạn có thể sửa lại.
Bạn dùng thử và phản hồi lại nhé!!
<<

Filename: 204965_tdn.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 205132
Tên lệnh: vtd
viết lisp vẽ line lấy giá trị từ text có sẵn

Hề hề hề,
Đây là lisp mình nháp thử xem có đúng yêu cầu của bạn hay không. Lưu ý bạn là các text trong bảng thống kê của bạn phải được đặt tương đối thẳng hàng với nhau, chớ có nhảy lambada nhé. Mình không vẽ trắc dọc theo kiểu nhập từng nhát một như bạn vì như vậy thì có khi vẻ thẳng bằng tay nhanh hơn nhiều.
Lisp này yêu cầu bạn nhập vùng chọn tức là vùng chỉ...
>>

Hề hề hề,
Đây là lisp mình nháp thử xem có đúng yêu cầu của bạn hay không. Lưu ý bạn là các text trong bảng thống kê của bạn phải được đặt tương đối thẳng hàng với nhau, chớ có nhảy lambada nhé. Mình không vẽ trắc dọc theo kiểu nhập từng nhát một như bạn vì như vậy thì có khi vẻ thẳng bằng tay nhanh hơn nhiều.
Lisp này yêu cầu bạn nhập vùng chọn tức là vùng chỉ chứa toàn các số liệu đã được sắp xếp thành bảng tương tự như cái bạn đã post. Các số liệu chiều cao và khoảng cách phải tương ứng với nhau trong bảng, nếu không lisp sẽ vẽ sai. Cách nhập số liệu đúng như cách nhập trong bảng mà bạn đã post. Nếu thay đổi cách nhập thì lisp cũng sẽ vẽ sai đấy.
Bạn hãy thử và cho biết ý kiến.

Chúc bạn vui.
<<

Filename: 205132_vtd.lsp
Tác giả: Tue_NV
Bài viết gốc: 205142
Tên lệnh: ctd
Lisp điều chỉnh vị trí text ghi kích thước trên đường dim

Của bạn đây. Bạn thử xem nhé :

Filename: 205142_ctd.lsp
Tác giả: mathan
Bài viết gốc: 205193
Tên lệnh: nt
most common step in achieving your dream and earns higher income due to the fact that she agreed to do Dancing With the Stars to get away from the drama in Alaska. that their choice of 21st December for the end-date of the current age was not acciden

nhl jerseys china http://bertsaircon.com.sg/nhl-wholesale-jerseys-2.html

Filename: 205193_nt.lsp
Tác giả: duongthanh85
Bài viết gốc: 66363
Tên lệnh: gtxt
Rắc rối lấy nội dung text từ đối tượng text được chọn bởi chuột
Em đang làm 1 hàm có chức năng đơn giản như sau:

Dùng chuột chọn 1 đối tượng text, lưu nội dung text vào 1 file text.

Đây là hàm em viết và không thành công.




Em mới bắt đầu học, mong mọi người hướng dẫn em làm hàm này. Em cảm ơn.

Filename: 66363_gtxt.lsp
Tác giả: ketxu
Bài viết gốc: 121838
Tên lệnh: c1
cách chọn đối tượng vừa được copy ra ?
betnovate n skin cream price in india This morning chief economist Peter Praet is out saying rates can stay low or fall as long as inflation remains moderate, while Vice President Constancio is looking at the sluggish growth outlook and predicting that policy will have to stay loose for a “long time”.
>>
betnovate n skin cream price in india This morning chief economist Peter Praet is out saying rates can stay low or fall as long as inflation remains moderate, while Vice President Constancio is looking at the sluggish growth outlook and predicting that policy will have to stay loose for a “long time”.
keflex 500 mg price walgreens But recovery at Alcatel-Lucent, which has lost more than $10billion since it was created through a 2006 merger, will dependin part on whether telecom operators increase overall spendingin the coming years to build superfast mobile broadband or ifthey trim budgets elsewhere to compensate.
tetracycline medicine names Jacobs will help provide a steadying presence to the young running back corps, which also includes seventh-round pick Michael Cox. Jacobs, 31, has a general knowledge of offensive coordinator Kevin Gilbride’s playbook. He spent his first seven seasons with the Giants, and just two years ago, he teamed with Ahmad Bradshaw in the backfield as Big Blue rumbled to a surprise Super Bowl XLVI victory over the Pats.

<<

Filename: 121838_c1.lsp
Tác giả: TRUNGNGAMY
Bài viết gốc: 205347
Tên lệnh: vdtg
[Yêu cầu] Viết Lệnh tạo đường bao tương tự lệnh boundary của Cad
Để đơn giản, trước hết ta xét các đối tượng giao nhau tại 2 đầu của chúng và kg có đối tượng bên trong. Sau khi chạy tốt sẽ xét TH các đối tượng giao nhau bất kỳ và có đối tượng kín bên trong. Như vậy sẽ phát sinh việc "cắt đối tượng" . Việc cắt đối tượng đã có Lisp "BreakObjects.lsp" của Charles Alan Butler. Tuy nhiên, Lisp này chạy lâu quá nên mình viết một Lisp...
>>
Để đơn giản, trước hết ta xét các đối tượng giao nhau tại 2 đầu của chúng và kg có đối tượng bên trong. Sau khi chạy tốt sẽ xét TH các đối tượng giao nhau bất kỳ và có đối tượng kín bên trong. Như vậy sẽ phát sinh việc "cắt đối tượng" . Việc cắt đối tượng đã có Lisp "BreakObjects.lsp" của Charles Alan Butler. Tuy nhiên, Lisp này chạy lâu quá nên mình viết một Lisp khác làm công việc này. Code như sau :

So với BreakObjects.lsp, Lisp này chạy nhanh gấp 50 lần với khoảng 200 đối tượng (bao gồm line, pline, spline, arc ...) và 200 điểm giao (tức khoảng 18s so với 900s). Khi số đối tượng càng tăng thì tốc độ càng thấy rõ hơn. Tuy nhiên, mình chỉ viết để phục vụ việc tìm đường bao và cũng kg đủ kiến thức nên kg viết đầy đủ như BreakObjects.lsp. Mặt khác, khi viết lisp này, mình chưa hội đủ đk tốt nhất để viết hàm break mà sd hàm break của cad (mình đang nhờ các bạn giúp trên mục Thuật toán, ý tưởng). Có thể đây là điểm yếu của Lisp này (mình chỉ viết tạm để các bạn dễ tư vấn, mình chỉ viết TH các đối tượng là hở, các đối tượng kín như đường tròn, elip ... mình chưa viết đc). Nhờ các bạn xem qua và tư vấn, chỗ có lệnh "break". Cám ơn các bạn
<<

Filename: 205347_vdtg.lsp
Tác giả: Doan Van Ha
Bài viết gốc: 205470
Tên lệnh: xx1
Tác giả: phamthanhbinh
Bài viết gốc: 82159
Tên lệnh: cbl
Đếm block thuộc tính

Hề hề,
Chào bạn eng_hiep,
Cao thủ thì hơi hiếm, song thấp thủ thì có đây. Bạn xài thử cái củ lisp này xem có bị giắt răng tí nào không nhé.

Nếu thấy giắt răng chỗ nào, bạn cứ post lên sẽ có nha sĩ gỡ giùm bạn. Hề hề hề. Chúc bạn ngon miệng.

Code lisp đã được chỉnh sửa bởi PhamThanhBinh để khắc phục lỗi do upload ngày 18-12-2009

Filename: 82159_cbl.lsp
Tác giả: duongthanh85
Bài viết gốc: 66511
Tên lệnh: tdd
Rắc rối lấy nội dung text từ đối tượng text được chọn bởi chuột
Thanks huynh Gia bach và huynh Q288. Mình đã giải quyết vấn đề mỹ mãn và áp dụng vào công việc rất tốt.

Đây là lisp huynh Gia Bach giúp, lisp này vừa đúng bài toán đặt ra; lisp mình viết và huynh Q288 đã chỉnh trên kia có khả năng ứng dụng rộng hơn.
Mình post vào đây cho liên tục.

Filename: 66511_tdd.lsp
Tác giả: ssg
Bài viết gốc: 11044
Tên lệnh: vcd
Viết Lisp theo yêu cầu

Bạn chạy thử chương trình sau:



Có mấy vấn đề góp ý:
1) Thủ tục viết text ra màn hình có vẻ đơn giản vậy nhưng tồn tại một vấn đề phiền toái. Cụ thể bạn tham khảo ở đây:

http://www.cadviet.com/forum/index.php?showtopic=2291

Bạn mới làm quen với lisp, nếu chưa hiểu rõ lắm thì cứ dùng hàm (wtxtMC txt p) đã xây dựng ở trên. Nó sẽ viết text...
>>

Bạn chạy thử chương trình sau:



Có mấy vấn đề góp ý:
1) Thủ tục viết text ra màn hình có vẻ đơn giản vậy nhưng tồn tại một vấn đề phiền toái. Cụ thể bạn tham khảo ở đây:

http://www.cadviet.com/forum/index.php?showtopic=2291

Bạn mới làm quen với lisp, nếu chưa hiểu rõ lắm thì cứ dùng hàm (wtxtMC txt p) đã xây dựng ở trên. Nó sẽ viết text txt (kiểu string) tại điểm p với align MC (middle center)
2) Lần trước mình có nói "cung cách giao tiếp với người dùng không tốt" là ở chỗ bạn bắt người dùng phải nhập số liệu nhiều quá (độ cao text, góc nghiêng text...). Có cần thiết như vậy không? Với function wtxtMC trên, nó sẽ lấy textstyle hiện hành để thực hiện (y như người dùng gọi lệnh text). Trường hợp đặc biệt, cần quy định h = textheigh khác, nếu không nghiêm ngặt lắm thì nên lấy h0 = textheigh hiện hành làm chuẩn và tự động tính h theo h0. Kể cả bán kính vòng tròn, theo mình bạn cũng nên quy định luôn theo h0 thì hay hơn. Tóm lại là cố gắng yêu cầu người dùng nhập số liệu càng ít càng tốt. Nếu có thể, chỉ cần 3 số liệu:
- Nội dung chú dẫn
- Điểm đầu leader
- Tâm đường tròn
Các yếu tố khác bạn tự quy định một cách hài hoà, hợp lý nhất theo h0 và để chương trình tính tự động.
3) Mình nhắc bạn post file *.dwg tức là file bản vẽ thực tế, với đầy đủ các yếu tố, sau khi trình lisp (đang xây dựng) của bạn chạy xong. File đầy đủ giúp mình hiểu rõ hơn về:
- Chương trình áp dụng cho chuyên ngành nào (kiến trúc, xây dựng, cơ khí, trắc địa...)?
- Chương trình thực hiện các động tác trên chỉ 1 lần hay là nhiều lần? Số lần lặp lại khoảng chừng bao nhiêu?
- Mật độ dày đặc các đối tượng trên bản vẽ ở mức nào?
- Kích thước file bản vẽ khoảng bao nhiêu?
- Các thông sô thiết lập về layer, textstyle, dimstyle như thế nào?
- v.v... và v.v...
Tất cả những cái nói trên, bạn tưởng là không liên quan gì, nhưng thật ra chúng đều rất quan trọng đối với lập trình viên, khi xây dựng thuật giải cũng như định hướng ban đầu để lập nên cái "khung sườn" cho chương trình một cách hợp lý nhất.
<<

Filename: 11044_vcd.lsp
Tác giả: ssg
Bài viết gốc: 15109
Tên lệnh: inc
Viết Lisp theo yêu cầu

Lisp đây, lệnh là INC:

Filename: 15109_inc.lsp
Tác giả: ssg
Bài viết gốc: 19019
Tên lệnh: findtxt
Viết Lisp theo yêu cầu

Bạn thử xem:

Filename: 19019_findtxt.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 202715
Tên lệnh: stcd
Lisp Ghép Text Cần Giúp Đỡ

Hề hề hề,
Chả biết có đúng ý chủ thớt không nhưng đây là cái mình đã nghĩ và mần theo suy nghĩ ở bài post trước,
Nếu không đúng ý xin chủ thớt và các bác khác đừng mắng nhé.

Hy vọng đúng ý chủ thớt.

Filename: 202715_stcd.lsp
Tác giả: interwar1283
Bài viết gốc: 10142
Tên lệnh: ss
Thiết kế vòi phun nước

cái này đã đề cập đến rồi thì phải, bạn thử tìm kiếm xem sao.

Filename: 10142_ss.lsp
Tác giả: xaydung
Bài viết gốc: 10149
Tên lệnh: ss
Xin hướng dẫn các bước sử dụng lispcad!

Bác mở cad ra , gõ lệnh ap, hiện lên 1 bảng, bạn chọn file lisp -->OK nhấn load. chú ý file cad lập trình sai sẽ không chạy.
nếu đúng sẽ hiện dòng này APPLOAD tinhthang.lsp successfully loaded tại command. Với đồ án thép có lẽ lisp vẽ đường hàn là quan trọng,, bạn cũng chú ý UCS khi vẽ trục toạ độ nghiêng. Chúc thành công!

Filename: 10149_ss.lsp

Trang 97/330

97