Jump to content
InfoFile
Tác giả: khuduba
Bài viết gốc: 31760
Tên lệnh: c2p
Viết Lisp theo yêu cầu
Chào các Mems, Tôi muốn có một đoạn lisp mà biến nhiều đoạn pline thành đúng một pline duy nhất.

Mong được giúp đỡ.

Thanks

Mình cũng đã tìm đến đoạn lisp của SSG, nhưng hình như nó không đúng ý mình (đã chạy thử)



Filename: 31760_c2p.lsp
Tác giả: ssg
Bài viết gốc: 31767
Tên lệnh: jpl
Viết Lisp theo yêu cầu

Lisp trên có công dụng khác: convert các đối tượng khác (như liệt kê) thành pline.
Lisp theo ý diễn tả của bạn là đây:


Filename: 31767_jpl.lsp
Tác giả: phamtuan
Bài viết gốc: 31126
Tên lệnh: bship
Game on Cad
Thêm một game nữa, mọi người chơi thử nhé


Filename: 31126_bship.lsp
Tác giả: nataca
Bài viết gốc: 31345
Tên lệnh: boj
lisp chặt rời các đối tượng làm hai phần

Thực ra cậu có thể sửa 1 chút lisp trên để được như ý muốn thôi mà. Thôi được rồi để tôi sửa giúp cậu. Cái này tôi sửa 1 chút từ lisp của bác NguyenHoanh và Phidoi_gabay. Đoạn lisp này hiện tại chỉ đúng với đường thẳng và đường cung tròn. Còn với đường tròn và đa tuyến thì chưa đạt yêu cầu. Mọi người hoàn thiện nốt nhé

Filename: 31345_boj.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 3087
Tên lệnh: test reset
code giới hạn thời gian sử dụng File lisp
Với file lisp thì rất khó để làm được điều này. Bởi người biết sử dụng lisp sẽ vô hiệu hoá ngay nếu như đọc được mã lisp. Tuy nhiên, có thể làm được điều này với 1 file VLX đã được mã hoá. Cách làm thông thường như sau: Ghi thông tin các lần sử dụng lệnh vào 1 vị trí trên registry, hoặc vào file config của AutoCAD. Sau đó, đọc các thông tin này để có hành động phù hợp.
>>
Với file lisp thì rất khó để làm được điều này. Bởi người biết sử dụng lisp sẽ vô hiệu hoá ngay nếu như đọc được mã lisp. Tuy nhiên, có thể làm được điều này với 1 file VLX đã được mã hoá. Cách làm thông thường như sau: Ghi thông tin các lần sử dụng lệnh vào 1 vị trí trên registry, hoặc vào file config của AutoCAD. Sau đó, đọc các thông tin này để có hành động phù hợp.

Sau đây là 1 ví dụ đơn giản:


Lệnh TEST để xác định số lần thực thi. Chỉ thực thi lệnh được 5 lần. Không quan trọng ngày tháng, không quan trọng số lần sử dụng ACAD, cứ dùng lệnh TEST quá 5 lần là hết hạn.
Lệnh RESET để khởi tạo lại giá trị.

Tất nhiên, ví dụ trên là 1 cái khoá đơn giản chỉ khoá được người ngay chứ không khoá được kẻ gian.
<<

Filename: 3087_test_reset.lsp
Tác giả: nataca
Bài viết gốc: 30921
Tên lệnh: tdd
Viết Lisp theo yêu cầu


Tức là bạn phải lọc các X= Y= Z=.... đi để được Dtext như hình vẽ phải ko? Không cần phải thế. Bạn chỉ cần vẽ đường Polyline qua các đầu cọc rồi đánh lệnh TDD ( khi ap lisp này vào) sau đó chọn đường polyline vừa vẽ và chọn text làm mẫu, điểm đặt kết quả. Lisp sẽ xuất cho bạn cột thứ nhất là thứ tự điểm, cột thứ 2 là toạ độ X của các điểm, cột thứ 3 là toạ độ...
>>

Tức là bạn phải lọc các X= Y= Z=.... đi để được Dtext như hình vẽ phải ko? Không cần phải thế. Bạn chỉ cần vẽ đường Polyline qua các đầu cọc rồi đánh lệnh TDD ( khi ap lisp này vào) sau đó chọn đường polyline vừa vẽ và chọn text làm mẫu, điểm đặt kết quả. Lisp sẽ xuất cho bạn cột thứ nhất là thứ tự điểm, cột thứ 2 là toạ độ X của các điểm, cột thứ 3 là toạ độ Y của các điểm. Bạn có thể căn lại hàng cột bằng cách thay đổi một chút ở biến K1, K2, H. Hy vọng đúng ý bạn.

<<

Filename: 30921_tdd.lsp
Tác giả: Snowman
Bài viết gốc: 29306
Tên lệnh: expl
Viết Lisp theo yêu cầu

Đoạn code của bạn mới chỉ đúng cho 1 trường hợp polyline dạng LWPOLYLINE, với đối tượng dạng POLYLINE thì lệnh sẽ gặp lỗi. Và bạn nên viết thêm đoạn code để người dùng tuỳ chọn tên file, nơi lưu trữ thay vì xuất ra một file với tên cố định, khi làm nhiều lần, các file dữ liệu sẽ bị ghi đè mất.
Tôi xin đưa ra một đoạn code sau, các bác dùng thử nhé!

Filename: 29306_expl.lsp
Tác giả: ssg
Bài viết gốc: 29572
Tên lệnh: fr
Viết Lisp theo yêu cầu

AutoCAD không quản lý layer theo kiểu của PhotoShop hay CorelDraw. Trong AutoCAD, cái nào sinh ra sau được nằm trên, bất kể ở layer nào. User chỉ có thể hoán đổi thứ tự ấy cho một nhóm đối tượng cụ thể nào đó đã được chỉ định bằng lệnh "draworder". Yêu cầu của bạn không thể thực hiện được về nguyên tắc!
Đúng hơn, có thể thực hiện được cho các đối tượng đã tồn tại...
>>

AutoCAD không quản lý layer theo kiểu của PhotoShop hay CorelDraw. Trong AutoCAD, cái nào sinh ra sau được nằm trên, bất kể ở layer nào. User chỉ có thể hoán đổi thứ tự ấy cho một nhóm đối tượng cụ thể nào đó đã được chỉ định bằng lệnh "draworder". Yêu cầu của bạn không thể thực hiện được về nguyên tắc!
Đúng hơn, có thể thực hiện được cho các đối tượng đã tồn tại trên bản vẽ bằng lisp sau:


Lệnh FR, chọn 1 đối tượng bất kỳ -> toàn bộ các đối tượng đang có trong bản vẽ, cùng layer với đối tượng vừa chọn sẽ nhảy lên trên. Nhưng những đối tượng mới, được tạo ra kể từ đó về sau, vẫn theo quy luật "sinh ra sau được nằm trên" như đã nói.
<<

Filename: 29572_fr.lsp
Tác giả: Snowman
Bài viết gốc: 28545
Tên lệnh: ntxt
Lisp chỉnh sửa kết quả của NOVA

Đây là đối tượng trước khi bị phá vỡ (objectARX)
http://data1.cadviet.com/Truoc.jpg
Còn đây là các đối tượng có được sau khi explode (bao gồm 2 line ký hiệu point, 3 mtext: thứ tự điểm, ghi chú và cao độ- trong trường hợp này ko có ghi chú nên chỉ có 2 mtext)

http://www.cadviet.com/upfiles/sau.jpg
Có thể dùng đoạn code sau để nối các text có được từ lệnh xuất cao...
>>

Đây là đối tượng trước khi bị phá vỡ (objectARX)
http://data1.cadviet.com/Truoc.jpg
Còn đây là các đối tượng có được sau khi explode (bao gồm 2 line ký hiệu point, 3 mtext: thứ tự điểm, ghi chú và cao độ- trong trường hợp này ko có ghi chú nên chỉ có 2 mtext)

http://www.cadviet.com/upfiles/sau.jpg
Có thể dùng đoạn code sau để nối các text có được từ lệnh xuất cao độ (chú ý: phải xuất theo kiểu phần nguyên và phần thập phân cùng hàng) Tuy nhiên đoạn code này chưa được hoàn thiện lắm, do text cao độ xuất từ NOVA ra có phần nguyên và phần thập phân ko cùng điểm chèn như tôi nghĩ ban đầu mà cách nhau một khoảng (ko biết có cố định hay theo một quy luật nào đó (Trong đoạn code này tôi đã thử với một khoảng cách cố định và test vài lần thấy cho kết quả khả quan) Bác nào có nhu cầu thì phát triển thêm cho hoàn thiện. Dù sao đi nữa dùng cad thuần tuý vẫn ...đỡ nhức đầu nhất :s_big:

<<

Filename: 28545_ntxt.lsp
Tác giả: Jin Yong
Bài viết gốc: 276
Tên lệnh: lt lh
Thủ thuật nhỏ từ Lisp
Lệnh này cho phép chuyển layer hiện tại thành layer mong muốn và gọi lệnh vẽ tương ứng. Ví dụ: lệnh LT sẽ chuyển layer qua P-THAY và gọi lệnh LINE; LH sẽ chuyển layer qua P-HATCH và gọi lệnh Hatch

Filename: 276_lt_lh.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 26843
Tên lệnh: t2h
Viết Lisp theo yêu cầu

lệnh là T2H (text to H)

Filename: 26843_t2h.lsp
Tác giả: vndesperados
Bài viết gốc: 2688
Tên lệnh: mia
MIA - Tặng các bác làm về đo đạc khảo sát

Quên mất, còn đây là code:

MIA.LSP


"Ừ, mình ơi, anh xong rồi, anh vào với mình ngay"
Khổ thế mà sướng thế

Filename: 2688_mia.lsp
Tác giả: cuongtk2
Bài viết gốc: 26615
Tên lệnh: so-am
Viết Lisp theo yêu cầu


Đoạn code sau sẽ giúp đổi số dương thành số âm và ngược lại:

Filename: 26615_so-am.lsp
Tác giả: Snowman
Bài viết gốc: 26709
Tên lệnh: addi addr addt adde
Viết Lisp theo yêu cầu

Đây là lisp bạn cần
Lệnh addi : cộng thêm giá trị cho hàng loạt các số nguyên
addr : cộng thêm giá trị cho hàng loạt các số thực (cái này bạn đang cần)
addt : cộng thêm giá trị cho các text số thứ tự
adde : cộng thêm giá trị cho các text cao độ (có thêm dấu +, -)


Với đoạn code như thế này, các bạn hoàn toàn có thể tự chế...
>>

Đây là lisp bạn cần
Lệnh addi : cộng thêm giá trị cho hàng loạt các số nguyên
addr : cộng thêm giá trị cho hàng loạt các số thực (cái này bạn đang cần)
addt : cộng thêm giá trị cho các text số thứ tự
adde : cộng thêm giá trị cho các text cao độ (có thêm dấu +, -)


Với đoạn code như thế này, các bạn hoàn toàn có thể tự chế biến cho mình những công cụ phù hợp, chẳng hạn thay cộng , trừ thành nhân, chia, thêm ký tự vào kết quả .... Mình thấy một số yêu cầu ..na ná nhau như : đánh số nhà, biến số - thành +, hay thêm bớt ký tự vào text ... làm loãng cả nội dung của box, mọi người cũng khó khăn trong việc tìm kiếm. Các mod có nên lập ra các box phân loại lisp theo công dụng và đối tượng không nhỉ (ví dụ như box lisp for text, text style, box lisp for block, box lisp for dim, box lisp for print...
<<

Filename: 26709_addi_addr_addt_adde.lsp
Tác giả: gia_bach
Bài viết gốc: 26043
Tên lệnh: layeractive
Cần một lisp liên quan đến việc tạo lớp


Bạn thử dùng đoạn code này xem sao :

Filename: 26043_layeractive.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 26413
Tên lệnh: tdd tdg
Viết Lisp theo yêu cầu

bạn nghe trong giấc mơ? lisp này chưa từng có trên cadviet.

đây là lisp tôi vừa viết theo yêu cầu của bạn, tên lệnh là TDD (tọa độ điểm) và TDG (tọa độ gốc):

Filename: 26413_tdd_tdg.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 26431
Tên lệnh: ns
Viết Lisp theo yêu cầu

Phù, phải mất công quay lại hình học giải tích lớp 12 để tính toán mãi mới có được các công thức nội suy.

Lệnh NS (nội suy) dưới đây sẽ thực hiện điều bạn muốn. Nội suy cao độ của 1 điểm dựa vào tọa độ của 3 điểm cho trước.

Filename: 26431_ns.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 25958
Tên lệnh: cte
Viết Lisp theo yêu cầu

lệnh là CTE (Color Text Edit)

Bạn có thể sửa số 1 (màu đỏ) trong đoạn mã trên thành các màu khác.

Filename: 25958_cte.lsp
Tác giả: minh2453
Bài viết gốc: 25752
Tên lệnh: ct
viết text theo đường cong
Cái này là do em sưu tập đc, chứ ko viết đc đâu.Thử xem thế nào

Filename: 25752_ct.lsp
Tác giả: jikibo
Bài viết gốc: 247
Tên lệnh: cd cd
Lisp Cut dim, cut hatch, align it


Mình có 2 kiểu cắt DIM

Mở Notepad. Copy và PASTE đoạn mã sau. Save với tên tương ứng.

1. Lựa chọn DIM và chọn điểm chân DIM

Tên file: CatDim.LSP

Lệnh: CD



Filename: 247_cd_cd.lsp

Trang 23/303

23