Jump to content
InfoFile
Tác giả: ssg
Bài viết gốc: 43408
Tên lệnh: ttt
Lisp biến Text thành 1 text hay một giá trị mình nhập vào ??????????

Bạn dùng thử cái này, lệnh TTT:


Filename: 43408_ttt.lsp
Tác giả: Tue_NV
Bài viết gốc: 43383
Tên lệnh: sten
Vẽ hình ô vuông lưới nhanh nhất


bạn đánh lệnh Sten thì nó sẽ thiết lập textstyle là Ten và font chữ là Time new Roman

Chúc thành công.

Filename: 43383_sten.lsp
Tác giả: gia_bach
Bài viết gốc: 43249
Tên lệnh: nk
Lisp nhân thêm hệ số K vào Text ???????????


Tổng hợp code của SSG và hhhhgggg đưa lên.
Có xét đến t/hợp nội dung Text là số (nguyên, thập phân)

Filename: 43249_nk.lsp
Tác giả: ssg
Bài viết gốc: 43263
Tên lệnh: nk
Lisp nhân thêm hệ số K vào Text ???????????
Hy vọng lần này đúng ý các bạn. Chương trình chấp nhận các đối tượng là TEXT lẫn MTEXT:




@duy782006: không được bạn ơi! Ví dụ:
Command: (rtos 1.0023 2 2)
return "1" -> không đúng ý các bạn ấy!


@giabach:
1. Dùng rtos không giải quyết triệt để được như đã nói trên.
2. Bạn thêm Isnumeric thì tốt thôi, nhưng liệu có cần đến mức ấy...
>>
Hy vọng lần này đúng ý các bạn. Chương trình chấp nhận các đối tượng là TEXT lẫn MTEXT:




@duy782006: không được bạn ơi! Ví dụ:
Command: (rtos 1.0023 2 2)
return "1" -> không đúng ý các bạn ấy!


@giabach:
1. Dùng rtos không giải quyết triệt để được như đã nói trên.
2. Bạn thêm Isnumeric thì tốt thôi, nhưng liệu có cần đến mức ấy không? Dù sao, user cũng phải tự chịu trách nhiệm về những gì mình làm chứ?
<<

Filename: 43263_nk.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 4310
Tên lệnh: rtf
Viết Lisp theo yêu cầu


Lệnh RTF của chương trình dưới đây sẽ làm được điều Jin muốn.
Chương trình sẽ yêu cầu nhập vào:
- từ đứng trước: là cụm từ nhận dạng đứng đằng trước từ cần thay. trong ví dụ của Jin, từ này có thể là 'D'.
- từ đứng sau: là cụm từ nhận dạng đứng đằng sau từ cần thay. trong ví dụ của Jin, từ này có thể là '-16(220x50)' hoặc '-16' đều được.
>>


Lệnh RTF của chương trình dưới đây sẽ làm được điều Jin muốn.
Chương trình sẽ yêu cầu nhập vào:
- từ đứng trước: là cụm từ nhận dạng đứng đằng trước từ cần thay. trong ví dụ của Jin, từ này có thể là 'D'.
- từ đứng sau: là cụm từ nhận dạng đứng đằng sau từ cần thay. trong ví dụ của Jin, từ này có thể là '-16(220x50)' hoặc '-16' đều được.
- từ mới muốn thay: là từ muốn thay vào giữa hai cụm từ nhận dạng trên. Trong ví dụ của jin, từ này là '13'.
- các text cần thay: chọn các text cần thay.

Các giá trị này được lưu lại, nếu các lần dùng lệnh sau mà không muốn thay đổi giá trị, chỉ việc nhấn enter lúc chương trình hỏi.

Cách hoạt động của chương trình theo ví dụ của Jin: tìm tất cả các từ có cấu trúc D*-16 và thay bằng D13-16.


<<

Filename: 4310_rtf.lsp
Tác giả: Tue_NV
Bài viết gốc: 43078
Tên lệnh: tlh
Hatch

Mới viết được đoạn Code này để thay đổi tỉ lệ Hatch.
Các bạn dùng thử :

Filename: 43078_tlh.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 4308
Tên lệnh: cvt
Viết Lisp theo yêu cầu


Có 3 lệnh dưới đây đáp ứng được 3 yêu cầu của bạn:
1. lệnh CVT: vẽ tường cân từ một line hoặc pline. Đầu vào: đối tượng (poly)line, chiều dày tường.
2. lệnh CVTL: vẽ tường lệch từ một line hoặc pline và bề dày. Đầu vào: đối tượng (poly)line, phía offset, khoảng cách offset, chiều dày tường.
3. lệnh CVTRIM: cắt bỏ đoạn line giao nhau giữa 2 tường. Đầu vào:...
>>


Có 3 lệnh dưới đây đáp ứng được 3 yêu cầu của bạn:
1. lệnh CVT: vẽ tường cân từ một line hoặc pline. Đầu vào: đối tượng (poly)line, chiều dày tường.
2. lệnh CVTL: vẽ tường lệch từ một line hoặc pline và bề dày. Đầu vào: đối tượng (poly)line, phía offset, khoảng cách offset, chiều dày tường.
3. lệnh CVTRIM: cắt bỏ đoạn line giao nhau giữa 2 tường. Đầu vào: 4 đường, chia làm 2 cặp. Mỗi cặp thể hiện một tường.
Như vậy, lệnh CVTL tuy có khác so với yêu cầu thứ 2 của bạn, nhưng nó điển hình hơn. Khi bạn muốn làm như yêu cầu thứ 2 của bạn, bạn kết hợp lệnh CVTL và lệnh CVTRIM là được.


<<

Filename: 4308_cvt.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 4308
Tên lệnh: cvt cvtrim%09 cvtl
Viết Lisp theo yêu cầu


Có 3 lệnh dưới đây đáp ứng được 3 yêu cầu của bạn:
1. lệnh CVT: vẽ tường cân từ một line hoặc pline. Đầu vào: đối tượng (poly)line, chiều dày tường.
2. lệnh CVTL: vẽ tường lệch từ một line hoặc pline và bề dày. Đầu vào: đối tượng (poly)line, phía offset, khoảng cách offset, chiều dày tường.
3. lệnh CVTRIM: cắt bỏ đoạn line giao nhau giữa 2 tường. Đầu vào:...
>>


Có 3 lệnh dưới đây đáp ứng được 3 yêu cầu của bạn:
1. lệnh CVT: vẽ tường cân từ một line hoặc pline. Đầu vào: đối tượng (poly)line, chiều dày tường.
2. lệnh CVTL: vẽ tường lệch từ một line hoặc pline và bề dày. Đầu vào: đối tượng (poly)line, phía offset, khoảng cách offset, chiều dày tường.
3. lệnh CVTRIM: cắt bỏ đoạn line giao nhau giữa 2 tường. Đầu vào: 4 đường, chia làm 2 cặp. Mỗi cặp thể hiện một tường.
Như vậy, lệnh CVTL tuy có khác so với yêu cầu thứ 2 của bạn, nhưng nó điển hình hơn. Khi bạn muốn làm như yêu cầu thứ 2 của bạn, bạn kết hợp lệnh CVTL và lệnh CVTRIM là được.


<<

Filename: 4308_cvt_cvtrim%09_cvtl.lsp
Tác giả: Tue_NV
Bài viết gốc: 43070
Tên lệnh: burst
Explode Block thuộc tính -- giá trị không đổi????

Hay bạn cũng có thể sử dụng file lisp này : burst.lsp
File này là file lisp nằm trong phụ trợ Express. Nếu bạn dùng các phiên bản CAD không có phụ trợ Express này thì hãy sử dụng đoạn Lisp này để thay thế.


Chúc thành công.

Filename: 43070_burst.lsp
Tác giả: vndesperados
Bài viết gốc: 4279
Tên lệnh: db
Dời điểm insert block



Thử cái này xem thế nào
DBLOCK.LSP

Filename: 4279_db.lsp
Tác giả: Tue_NV
Bài viết gốc: 42252
Tên lệnh: xscale xsc
chỉnh sửa bản vẽ cad

Bạn sử dụng lệnh Xsc : scale một chiều nhé
Đây là code

Hướng dẫn sử dụng code : bạn xem ở đây : Hướng dẫn sử dụng code

Filename: 42252_xscale_xsc.lsp
Tác giả: gia_bach
Bài viết gốc: 42463
Tên lệnh: ins point
Chèn points vào vị trí text

Bạn dùng thử LISP sau :
(chú ý: Lisp này chưa xét đến t.hợp nội dung Text không phải là số. Vd: " 123 0" có khoảng trắng giữa các kí tự)

Filename: 42463_ins_point.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 4164
Tên lệnh: p2t
Viết Lisp theo yêu cầu



Lệnh P2T:


Filename: 4164_p2t.lsp
Tác giả: duy782006
Bài viết gốc: 4196
Tên lệnh: maw
-Tên lệnh: MAW
MATCHPROP Độ rộng Pline mẫu đến các đối tượng khác.

Filename: 4196_maw.lsp
Tác giả: Tue_NV
Bài viết gốc: 41415
Tên lệnh: cdl col ctl cbll chl
Muốn chập 2 hay nhiều layer làm 1 thì làm thế nào


Xin lỗi, hai hàm đó đay anh gia bách ạ.

Tiện thể, xin hỏi anh giabach có hàm nào mà khi pick vào dimension thì trả về được một giá trị chính là giá trị số text ghi trên dimension đó hay không?
Cám ơn anh.
Chúc anh thật nhiều sức khỏe.

Filename: 41415_cdl_col_ctl_cbll_chl.lsp
Tác giả: Tue_NV
Bài viết gốc: 41610
Tên lệnh: bdim
Hỏi về khoảng cách các đường dim

Điều bạn nói là đúng. Nhưng mình có thể làm nhanh hơn thế. Thay vì bước vào format > Dimension Style>Modify>Lines and Arrows chọn ô: Baseline spacing cho giá trị bạn muốn ví dụ 400 sau đó nhấn OK. Mình chỉ cần gõ 1 lệnh Dimdli
Nhập khoảng cách . sau đó làm bước 2 như bạn : Bây giờ bạn đánh lệnh DLI đo 1 đoạn AB sau đó dùng lệnh DBA bạn sẽ có cái mà bạn cần.
Hoặc nhanh hơn...
>>

Điều bạn nói là đúng. Nhưng mình có thể làm nhanh hơn thế. Thay vì bước vào format > Dimension Style>Modify>Lines and Arrows chọn ô: Baseline spacing cho giá trị bạn muốn ví dụ 400 sau đó nhấn OK. Mình chỉ cần gõ 1 lệnh Dimdli
Nhập khoảng cách . sau đó làm bước 2 như bạn : Bây giờ bạn đánh lệnh DLI đo 1 đoạn AB sau đó dùng lệnh DBA bạn sẽ có cái mà bạn cần.
Hoặc nhanh hơn nữa bạn có thể swr dụng lisp sau :
Tên lệnh là bdim :

Chúc bạn thành công. Hy vọng đúng ý các bạn.
<<

Filename: 41610_bdim.lsp
Tác giả: Tue_NV
Bài viết gốc: 41317
Tên lệnh: scc
Viết Lisp theo yêu cầu

Đầu tiên, có thể bạn sử dụng lệnh Tjust để chuyển một chữ căn lề trái, một chữ căn lề phải ( mà không bị thay đổi vị trí của text) theo bạn Nataca. Hoặc có thể bạn không dùng cũng được. sau này bạn move ra một chút
. Và bạn sử dụng đoạn Code của mình để thực hiện ý muốn của mình.
Dưới đây là Code :

Để mình giải thích .
Đoạn code trên dựa...
>>

Đầu tiên, có thể bạn sử dụng lệnh Tjust để chuyển một chữ căn lề trái, một chữ căn lề phải ( mà không bị thay đổi vị trí của text) theo bạn Nataca. Hoặc có thể bạn không dùng cũng được. sau này bạn move ra một chút
. Và bạn sử dụng đoạn Code của mình để thực hiện ý muốn của mình.
Dưới đây là Code :

Để mình giải thích .
Đoạn code trên dựa trên lệnh scale với điểm chèn là trung điểm của đường thẳng nối 2 text.
Và tỉ lệ của lệnh Scale trên bằng khoảng cách 2 text đầu (chữ to) chia cho khoảng cách 2 text cuoi (là khoảng cách do mình chọn lúc cuối cùng)
Mục đích là để thu hẹp khoảng cách của 2 text. Sau đó sử dụng hàm tt để thay đổi chiều cao của 2 text đó :
Ở dòng lệnh :
Height/Select:
Nếu bạn chọn S thì : chương trình bảo bạn nhập kích thước text mới
Nếu bạn chọn H thì : chương trình bảo bạn chọn Chieu cao loai Texts can thay doi và chiều cao text thay doi chieu cao thanh:
Trong trường hợp này bạn nên chọn S
Còn bạn muốn thực hiện lệnh là multiple
thì bạn hãy gõ
Command : multiple

Enter command name to repeat: scc
....

Bạn có thể thiết lập lệnh tắt multiple trong file acad.pgp



Nhớ thanks ủng hộ nhé.
Chúc vui :leluoi:
<<

Filename: 41317_scc.lsp
Tác giả: Tue_NV
Bài viết gốc: 41411
Tên lệnh: mgco ccot
Xin lisp ghi được cao độ cụ thể các điểm trên mặt cắt dọc


Code đây sẽ làm được điều bạn cần :


Cách thức hoạt động của đoạn code trên :
Bạn giải nén file tue.zip (Có chứa file ghicot.lsp và file cot.dwg) vào trong ổ đĩa C:\tue mà mình sẽ upload dưới đây
Sau đó vào CAD ->gõ option ->File -> Bạn chọn Support file Search path -> Add vào đường dẫn C:\tue ->OK.
Nếu bạn không làm những bước trên thì chương trình sẽ không...
>>


Code đây sẽ làm được điều bạn cần :


Cách thức hoạt động của đoạn code trên :
Bạn giải nén file tue.zip (Có chứa file ghicot.lsp và file cot.dwg) vào trong ổ đĩa C:\tue mà mình sẽ upload dưới đây
Sau đó vào CAD ->gõ option ->File -> Bạn chọn Support file Search path -> Add vào đường dẫn C:\tue ->OK.
Nếu bạn không làm những bước trên thì chương trình sẽ không chạy.
Bạn appload file ghicot.lsp lên và bắt đầu sử dụng :
Đơn vị ghi cot là đơn vị mm
Ở đây có thêm lệnh Ccot là lệnh copy cao độ từ cao độ có sẵn. Bạn ngâm cứu nhé. hay lắm
Mình sẽ làm ví dụ trong file của bạn
Command: mgco

Nhap: "T" neu xac dinh cot theo moc tuong doi.
-> Diem goc xac dinh cot /T/<0.0>: _from Base point: (Pick vào điểm gốc xác định tọa độ tương đối) : @0,-368550 (đây là tọa độ điểm gốc 0,0 được xác định theo chế độ bắt điểm from từ điểm gốc xác định tọa độ tương đối)

->> Ghi cot vao diem goc ?/Y/: n
Cot cao do tinh bang "Milimet" !
->> Cot cao do <0.000> : Enter
->> Diem ghi cot tiep theo: Pick vào điểm ghi cot
Cot cao do tinh bang "Milimet" !
->> Cot cao do <+368.550> :
->> Diem ghi cot tiep theo: Pick vào điểm ghi cot
Cot cao do tinh bang "Milimet" !
->> Cot cao do <+368.050> :
->> Diem ghi cot tiep theo: Pick vào điểm ghi cot
Cot cao do tinh bang "Milimet" !
->> Cot cao do <+367.603> :
->> Diem ghi cot tiep theo: Pick vào điểm ghi cot
Cot cao do tinh bang "Milimet" !
->> Cot cao do <+368.670> :
----Còn nữa


File Tue.zip đây bạn : TueZip
File ví dụ mình sửa đây bạn : Coc_12Zip
Nhớ thanks đấy nhé.
À quên : Ứng dụng file líp ghi cot bạn có thể ghi tọa độ của sợi cáp trong phần bê tông ứng lực trước bằng cách thay cái file cot.dwg có chứa đối tượng block thành một file cot.dwg có chứa đối tượng là một point(đối tượng điểm)
Chúc vui. :leluoi:
<<

Filename: 41411_mgco_ccot.lsp
Tác giả: Tue_NV
Bài viết gốc: 40730
Tên lệnh: ga
Tác giả: nataca
Bài viết gốc: 41201
Tên lệnh: tx txc tyh ty
Yêu cầu lisp căn chỉnh vị trí Text !

Text văng có thể là do bạn dùng Mtext.
Đây là Lisp tôi viết để dùng. Cái này giúp trình bày bản vẽ ngay ngắn hơn.

Filename: 41201_tx_txc_tyh_ty.lsp

Trang 20/330

20