InfoFile
Tác giả: ketxu
Bài viết gốc: 149877
Tên lệnh: cac copyalongcurve
Rải đối tượng theo đường dẫn.



Nguyên tác alanjt


Filename: 149877_cac_copyalongcurve.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 57933
Tên lệnh: p
Thêm node vào đường Pline


Chào bạn AGI,
Bạn xài thử cái này coi sao. Líp này chỉ chèn thêm diểm vào pline mà chả làm thêm bất cứ động tác nào. Kín hở ǵ cũng vậy bạn ạ. Miễn rằng bạn phải pick điểm chọn đúng trên pline mà thôi.


Nếu bạn muốn một lần chạy chọn nhiều điểm th́ phải làm thêm...
>>

Chào bạn AGI,
Bạn xài thử cái này coi sao. Líp này chỉ chèn thêm diểm vào pline mà chả làm thêm bất cứ động tác nào. Kín hở ǵ cũng vậy bạn ạ. Miễn rằng bạn phải pick điểm chọn đúng trên pline mà thôi.


Nếu bạn muốn một lần chạy chọn nhiều điểm th́ phải làm thêm một ṿng lặp While nữa bạn ạ.
<<

Filename: 57933_p.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 167966
Tên lệnh: glt
[Yêu cầu] Lisp tính lư tŕnh các điểm trên 1 polyline/line


Xin chào,
Bạn dùng thử cái này xem đã ưng ý chưa nhé. Nếu cần gì bổ sung thì hãy post lên

Chúc bạn vui

Filename: 167966_glt.lsp
Tác giả: MANHHUNGXDA
Bài viết gốc: 83784
Tên lệnh: revla revla1 layiso layfrz layoff laylck layulk layon laythw laymch laycur
lệnh mở khoá tất cả các lớp

Có thể ḿnh chưa hiểu hết ư bạn nhưng bạn hăy t́m câu trả lời trong lisp này:

Filename: 83784_revla_revla1_layiso_layfrz_layoff_laylck_layulk_layon_laythw_laymch_laycur.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 156659
Tên lệnh: advt
[Đã xong] Lisp thêm đỉnh cho PL

Hề hề hề,
Chào các bác, ḿnh cũng có cái ni mới mần thử, đem ra đây khoe của một tí, các bác chớ giận hỉ.

Filename: 156659_advt.lsp
Tác giả: jikibo
Bài viết gốc: 431
Tên lệnh: taol
Ứng dụng LISP để vẽ bản vẽ kiến trúc (phần cơ bản)
Một bản vẽ mới được thiết lập. Vẫn những layer đó, vẫn những kiểu text đó, vẫn những kiểu dim đó...Bạn không cần thiết phải làm lại từ đầu v́ quá mất thời gian. Vậy làm thế nào???

( Tất cả các LISP CODE bạn chỉ việc copy rồi save ra file cùng tên với...
>>
Một bản vẽ mới được thiết lập. Vẫn những layer đó, vẫn những kiểu text đó, vẫn những kiểu dim đó...Bạn không cần thiết phải làm lại từ đầu v́ quá mất thời gian. Vậy làm thế nào???

( Tất cả các LISP CODE bạn chỉ việc copy rồi save ra file cùng tên với lệnh lisp và có phần mở rộng la .LSP (ví dụ: TaoL.LSP) là ok :lol: )

Bài 1: Tạo Layer



Với lisp này lệnh để tạo kiểu kích thước sẽ là TaoK.
Các thông số cần nhập
1. Tỷ lệ bản vẽ: (Thường là 1/1, cũng có thể là 1/2 tùy vào kiểu dim bạn muốn tạo)
2. Chiều cao chữ: (Tùy thuộc vào bản vẽ của bạn)
3. Tên kiểu dim mới: (Nên đặt theo chiều cao của chữ)
<<

Filename: 431_taol.lsp
Tác giả: jikibo
Bài viết gốc: 431
Tên lệnh: taoc
Ứng dụng LISP để vẽ bản vẽ kiến trúc (phần cơ bản)
Một bản vẽ mới được thiết lập. Vẫn những layer đó, vẫn những kiểu text đó, vẫn những kiểu dim đó...Bạn không cần thiết phải làm lại từ đầu v́ quá mất thời gian. Vậy làm thế nào???

( Tất cả các LISP CODE bạn chỉ việc copy rồi save ra file cùng tên với...
>>
Một bản vẽ mới được thiết lập. Vẫn những layer đó, vẫn những kiểu text đó, vẫn những kiểu dim đó...Bạn không cần thiết phải làm lại từ đầu v́ quá mất thời gian. Vậy làm thế nào???

( Tất cả các LISP CODE bạn chỉ việc copy rồi save ra file cùng tên với lệnh lisp và có phần mở rộng la .LSP (ví dụ: TaoL.LSP) là ok :lol: )

Bài 1: Tạo Layer



Với lisp này lệnh để tạo kiểu kích thước sẽ là TaoK.
Các thông số cần nhập
1. Tỷ lệ bản vẽ: (Thường là 1/1, cũng có thể là 1/2 tùy vào kiểu dim bạn muốn tạo)
2. Chiều cao chữ: (Tùy thuộc vào bản vẽ của bạn)
3. Tên kiểu dim mới: (Nên đặt theo chiều cao của chữ)
<<

Filename: 431_taoc.lsp
Tác giả: NvThanh
Bài viết gốc: 167955
Tên lệnh: ft
lisp đổi font của text style siêu nhanh !

Cả 2 cách trên đều không đúng thì phải, mình đã thử cách này thì ok .

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=53830&pid=167735&st=0&#entry167735
;free lisp by cadviet,cd2k44
;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
(defun c:FT (/ ent tstyle )
>>

Cả 2 cách trên đều không đúng thì phải, mình đã thử cách này thì ok .

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=53830&pid=167735&st=0&#entry167735
;free lisp by cadviet,cd2k44
;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
(defun c:FT (/ ent tstyle )
(command "undo" "be")
(setq ent (entsel "\n Pick text :"))
(setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
(command "STYLE" TSTYLE "vntimeh.shx,vns.shx" "0" "1" "0" "N" "N" "N")
(setvar "TEXTSTYLE" Tstyle)
(command "undo" "end")
)

bác nào biết thêm tùy chọn tìm và thay thế toàn bộ font trong 1 file cad thành font .vntimeh.shx thì tốt quá
Cảm ơn nhiều !
<<

Filename: 167955_ft.lsp
Tác giả: ssg
Bài viết gốc: 6656
Tên lệnh: cta
Tác giả: hoa35ktxd
Bài viết gốc: 93333
Tên lệnh: lenh
Tác giả: hugo007
Bài viết gốc: 154524
Tên lệnh: fc
[Cần giúp chỉnh sửa] giùm e đoạn lisp đổi font hàng loạt
Đây là đoạn lisp do bác ketxu viết,có thể đổi tên font tất cả các kiểu trong text style,có thể đổi luôn chiều cao,bề rộng,góc xoay nếu không nhập enter luôn thì những cái này giữ nguyên.Nhưng có 1 bất tiện là nó tự đổi kiểu trong FONT STYLE thí...
>>
Đây là đoạn lisp do bác ketxu viết,có thể đổi tên font tất cả các kiểu trong text style,có thể đổi luôn chiều cao,bề rộng,góc xoay nếu không nhập enter luôn thì những cái này giữ nguyên.Nhưng có 1 bất tiện là nó tự đổi kiểu trong FONT STYLE thí dụ như có kiểu style name trong đó có FONT STYLE là BOLD thì nó đổi thành REGULAR,nhờ các bác sửa sao cho FONT STYLE vẫn giữ nguyên như mặc định ban đầu.Chân thành cảm ơn trước.

<<

Filename: 154524_fc.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 121500
Tên lệnh: invis vis
[Đã xong] Lisp hide & show object

Hề hề hề,
Không phải bạn uống nhầm thuốc mà là bạn download về nhầm lisp. Cái lisp này nếu ḿnh không nhớ nhầm th́ bị lỗi và đă được sửa lại ở đâu đó trên diễn đàn từ khá lâu rồi. Song do chủ thớt bận chưa cập nhật lại chỗ hỏng nên các bạn tới sau...
>>

Hề hề hề,
Không phải bạn uống nhầm thuốc mà là bạn download về nhầm lisp. Cái lisp này nếu ḿnh không nhớ nhầm th́ bị lỗi và đă được sửa lại ở đâu đó trên diễn đàn từ khá lâu rồi. Song do chủ thớt bận chưa cập nhật lại chỗ hỏng nên các bạn tới sau cứ thế mà down về nên dính chấu thôi.
Cái này là ḿnh mới đọc lại cái lisp lỗi và sửa lại để các bạn xài thử coi. Nếu thấy được th́ cứ thế xài, khỏi phải làm phiền bác chủ thớt nữa hỉ. C̣n không được th́ chờ bác chủ thớt xuống dao vậy.


Nhớ copy cái này thành tên khác chứ đừng copy đè lên cái cũ. Sau đó các bạn hăy tự đọc lại và so sánh với cái lisp cũ để thấy cái chỗ ḿnh sửa và hiểu được v́ sao nó trật.
Hy vọng các bạn hài ḷng.

PS: lưu ư các bạn là khi lisp hỏi: All hidden entities will be visible. Continue? No, :
Các bạn phải trả lời là Yes chứ không được lười nhấn mà nhập yes hay y hay Y chăng nữa. V́ như vậy lisp sẽ chẳng cho kết quả đúng đâu. Hề hề hề,
Cái này là tôn trọng bác chủ thớt đă có công làm ra nó, ḿnh chỉ chỉnh chỗ chưa đạt chứ không thay đổi ư đồ của bác ấy. Mong các bạn hiểu giùm.
<<

Filename: 121500_invis_vis.lsp
Tác giả: ketxu
Bài viết gốc: 149866
Tên lệnh: an hn hn1
Hide & show object

- Lệnh :
+ An : Ẩn tất cả các đối tượng chọn
+ Hn : Hiện tất cả các đối tượng đă bị ẩn trước đó bằng lệnh An
+ Hn1 : Lựa chọn hiện lại 1 phần các đối tượng đă bị ẩn trước đó bằng lệnh An

- Lưu ư : lisp dùng layer...
>>

- Lệnh :
+ An : Ẩn tất cả các đối tượng chọn
+ Hn : Hiện tất cả các đối tượng đă bị ẩn trước đó bằng lệnh An
+ Hn1 : Lựa chọn hiện lại 1 phần các đối tượng đă bị ẩn trước đó bằng lệnh An

- Lưu ư : lisp dùng layer HIDE làm layer trung gian, hi vọng không bị trùng ^^
Cơ chế khác với lisp Hide/show đầu topic.





<<

Filename: 149866_an_hn_hn1.lsp
Tác giả: ketxu
Bài viết gốc: 131736
Tên lệnh: clear
Dọn mặt bằng

- Chuyển toàn bộ bản vẽ về 1Layer



Filename: 131736_clear.lsp
Tác giả: ketxu
Bài viết gốc: 166736
Tên lệnh: vtl
Khoá và mở khoá khung viewport!

- Toggle chế độ khóa/mở khóa của Viewport
- Nếu đang ở trong VP, lệnh sẽ có tác dụng với VP hiện tại.
- Nếu không, chọn các VP để thực thi

Filename: 166736_vtl.lsp
Tác giả: ssg
Bài viết gốc: 11934
Tên lệnh: ged
AutoCAD với Excel
Visual Lisp và ActiveX Automation

Lisp có những ưu thế tuyệt vời khi làm việc với Acad:
- Dễ dàng tạo các đối tượng Acad cũng như truy xuất dứ liệu từ chúng
- Gọi command của Acad rất đơn giản và tự nhiên như "người trong nhà"
- Các lệnh được tạo bằng lisp...
>>
Visual Lisp và ActiveX Automation

Lisp có những ưu thế tuyệt vời khi làm việc với Acad:
- Dễ dàng tạo các đối tượng Acad cũng như truy xuất dứ liệu từ chúng
- Gọi command của Acad rất đơn giản và tự nhiên như "người trong nhà"
- Các lệnh được tạo bằng lisp được Acad "đối xử b́nh đẳng" như các lệnh chính thống v.v…
Bên cạnh các ưu điểm trên, nhược điểm lớn nhất của Lisp là khả năng giao tiếp với bên ngoài rất hạn chế. Lâu nay, để truy xuất dữ liệu từ Excel, ḿnh vẫn thường phải qua 1 trong 2 dạng file trung gian *.txt (Tab delimited - phân biệt các field bằng kư tự Tab) và *.csv (Comma delimited - phân biệt các field bằng dấu phẩy).
Nhược điểm này có thể khắc phục được bằng cách dùng ActiveX Automation.
Tổng quan về ActiveX, xin được trích dẫn Help:

"ActiveX Automation is a new way to work programmatically with the contents of an AutoCAD drawing. In many instances, ActiveX works faster than traditional AutoLISP functions in manipulating AutoCAD drawing objects.
The ActiveX programming interface is usable from a number of languages and environments, such as C++, Visual BasicTM, and DelphiTM. When you work with ActiveX objects in AutoLISP, you work with the same object model, properties, and methods that can be manipulated from other programming environments."

Translation:
ActiveX Automation là một phương pháp mới để lập tŕnh với AutoCAD. Trong nhiều trường hợp, ActiveX làm việc nhanh hơn các hàm AutoLisp truyền thống trong việc xử lư các đối tượng AutoCAD.
ActiveX có thể dùng được với một số ngôn ngữ và môi trường lập tŕnh như C++, VB và Delphi. Khi làm việc với ActiveX trong AutoLisp, bạn thao tác với Objects – Properties – Methods giống như trong những môi trường lập tŕnh nói trên.

Visual Lisp cung cấp một số hàm dạng vlax-xxxx để làm việc với ActiveX. Thực tế là từ trước đến nay, bản thân ḿnh cũng chưa có điều kiện nghiên cứu sâu về chúng. Khó khăn lớn nhất là không có tài liệu, ngay cả Help của Acad cũng hướng dẫn sơ sài. Tuy chưa biết nhiều, nhưng ḿnh thấy mảng này khá hay. Làm chủ được nó, chúng ta có thể dùng Lisp truy xuất dữ liệu trực tiếp từ các ứng dụng khác (Excel là 1 ví dụ), không phải “nhiêu khê” như trước nữa.

Một ví dụ minh họa để các bạn thử nghiệm:

Tŕnh tự thử:
- Appload đoạn lisp trên
- Khởi động Excel, open 1 file *.xls nào đó
- Pick chọn 1 cell bất kỳ (có chứa dữ liệu để kiểm tra)
- Sang Acad, gơ lệnh GED để thử
Kết quả: 1 message_box ghi thông tin về nội dung, chỉ số cột và hàng của cell mà bạn đă chọn.

Đặt vấn đề:
1) Đă lấy được dữ liệu của 1 cell th́ tất nhiên sẽ lấy được dữ liệu của cả sheet, và đă import được th́ tất nhiên cũng export được. Bằng cách nào th́ mời các bạn có hứng thú với cái này “ngâm cứu” tiếp. Trước mắt, chỉ cần lấy được dữ liệu của một vùng được selected trong bảng Excel đang hiện hành (ví dụ như B3:F17 chẳng hạn) là đă ứng dụng được cho khối việc rồi.
2) Các thao tác trên hoàn toàn không dùng đến kho libraries của bất cứ tŕnh ứng dụng nào. Phải nhờ vả đến “đám” này rất là phiền toái v́ sự không tương thích giữa các version. Nếu phải dùng đến libraries, khi người ta nâng cấp version của Excel, rất nhiều khả năng chương tŕnh của chúng ta sẽ không chạy được. Bản thân ssg ít thích dùng VB chính v́ nó phụ thuộc vào các libraries quá nhiều!
Để khẳng định điều này, ssg nhờ các bạn kiểm tra giúp xem đoạn lisp trên có làm việc được với mọi version của AutoCAD cũng như Excel hay không? Ssg đă thử với Cad2002, Cad2007 và Excel2003, kết quả OK.
3) Các bạn thường lập tŕnh với VB và ActiveX có kinh nghiệm hoặc tài liệu ǵ (tiếng Việt hoặc tiếng Anh đều tốt) về vấn đề này xin được chia sẻ.

Cám ơn tất cả các bạn,
<<

Filename: 11934_ged.lsp
Tác giả: jikibo
Bài viết gốc: 435
Tên lệnh: oo
Ứng dụng LISP để vẽ bản vẽ kiến trúc (phần cơ bản)
Ờ nhỉ tí quến. Thế khi vẽ tim và tường th́ làm thế nào cho nhanh. Co người th́ dùng MLine, co người th́ dùng Line. MLine th́ không bàn, nhanh, nhưng không phải ai cũng quen. Vậy làm thế nào khi đă ve xong tim tường rồi? OFFSET ?

Bài 7: Offset line sang 2 bên



Lênh để offset line sang 2 bên là oo.
....
C̣n lắm...
>>
Ờ nhỉ tí quến. Thế khi vẽ tim và tường th́ làm thế nào cho nhanh. Co người th́ dùng MLine, co người th́ dùng Line. MLine th́ không bàn, nhanh, nhưng không phải ai cũng quen. Vậy làm thế nào khi đă ve xong tim tường rồi? OFFSET ?

Bài 7: Offset line sang 2 bên



Lênh để offset line sang 2 bên là oo.
....
C̣n lắm nhưng mà ăn cơm đă..hè hè
<<

Filename: 435_oo.lsp
Tác giả: Thaistreetz
Bài viết gốc: 134049
Tên lệnh: tl
Lisp ghi chiều dài đoạn thẳng theo Scale factor của Dimstyle hiện thời
topic của mình đây mà. cũng là bài viết thứ 2 trên cadviet của mình. hồi đó đuợc bác PhamThanhBinh viết cho cái lisp này mừng cả 1 ngày.
Mình sửa lại 1 chút lisp của bác Bình cho fù hợp với nhu cầu của bạn đây.

Bạn chú ý:
- sau khi gõ...
>>
topic của mình đây mà. cũng là bài viết thứ 2 trên cadviet của mình. hồi đó đuợc bác PhamThanhBinh viết cho cái lisp này mừng cả 1 ngày.
Mình sửa lại 1 chút lisp của bác Bình cho fù hợp với nhu cầu của bạn đây.

Bạn chú ý:
- sau khi gõ lệnh bạn có thể chon theo cả 2 cách như bạn yêu cầu. nghĩa là bạn có thể chọn kiểu như thế này: ...chọn 1 tập hợp -> rồi pick...pick -> rồi lại chọn tập hợp -> rồi lại pick pick...rồi...rồi...
- Chương trình sẽ tự nhận diện tập hợp đối tượng của bạn, nhóm đối tượng nào chọn trước, nhóm đối tượng nào chọn sau, các phần tử trong 1 tập hợp là hàng hay là cột để tự sắp xếp theo X hoặc Y.
- mình ngại kẻ bảng nên kết quả nhìn hơi xấu. thôi, cái này bạn tự làm đê.
@Ketxu: ai lại dich tên tớ thế <_<. dịch là Thái bụi cậu ạ :lol:
<<

Filename: 134049_tl.lsp
Tác giả: q288
Bài viết gốc: 60334
Tên lệnh: ckt
Viết Lisp theo yêu cầu


Nói chung lisp kiểu này chắc có nhiều trên diễn đàn này rồi, tuy nhiên ḿnh cũng làm thêm 1 cái nữa. Lisp này chọn text, mtext và thêm vào đầu hay cuối kư tự chèn.

Filename: 60334_ckt.lsp
Tác giả: ssg
Bài viết gốc: 43035
Tên lệnh: od oc oca
có list nào copy tăng dần với block ATT ko?

Bạn dùng thử lisp này. Ssg đă post lên diễn đàn lâu lắm rồi. Riêng phần Att mới bổ sung theo gợi ư của bạn:


Filename: 43035_od_oc_oca.lsp

Trang 10/147

10