InfoFile
Tác giả: 18011985
Bài viết gốc: 99499
Tên lệnh: ddc
tính độ dốc bàng cách pích 2 điểm

Còn đây là phần mình viết xong, chúc bạn sức khoẻ!

Filename: 99499_ddc.lsp
Tác giả: ketxu
Bài viết gốc: 121138
Tên lệnh: c
Tác giả: VUVUZELA
Bài viết gốc: 104299
Tên lệnh: dpl
Xem giúp đoạn lisp của mình vẽ pline có nhập chiều dài và góc
Vì cách nhập trực tiếp trên cad không giống như câu lệnh của Autolisp nên
bạn thử đoạn này xem để so sánh nhé. Có gì pm

Filename: 104299_dpl.lsp
Tác giả: 18011985
Bài viết gốc: 104929
Tên lệnh: pla
Xem giúp đoạn lisp của mình vẽ pline có nhập chiều dài và góc
Bạn vẽ 2 điểm thì vẽ thế kia được nếu bạn muốn lặp lại để vẽ thì cũng được nhưng như thế kết quả thu được là những đoạn polyline rời dạc . Nên bạn thử dùng lsp này xem. Đáp ứng được các yêu cầu của bạn (Chú ý chỉ thoát và hoàn thành polyline...
>>
Bạn vẽ 2 điểm thì vẽ thế kia được nếu bạn muốn lặp lại để vẽ thì cũng được nhưng như thế kết quả thu được là những đoạn polyline rời dạc . Nên bạn thử dùng lsp này xem. Đáp ứng được các yêu cầu của bạn (Chú ý chỉ thoát và hoàn thành polyline khi chiều dài nhập vào là nil "Tức bạn gõ space hoặc enter", nếu bạn ấn ESC bạn phải làm lại từ đầu).

Chúc các bạn sức khoẻ và tích cực đóng góp nhiều lsp hơn nữa cho diễn đàn.
<<

Filename: 104929_pla.lsp
Tác giả: gia_bach
Bài viết gốc: 105314
Tên lệnh: sch
Xem giúp đoạn lisp của mình vẽ pline có nhập chiều dài và góc


duy782006 dùng thử LISP này (sử dụng hàm VLA-...)

Filename: 105314_sch.lsp
Tác giả: duy782006
Bài viết gốc: 158592
Tên lệnh: rot
-Tên lệnh ROT.
Quay nhiều TEXT một góc nhập vào giữ nguyên tâm TEXT

Filename: 158592_rot.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 150541
Tên lệnh: dlay
[Đã xong] Lisp chuyển nhiều layer về 1 layer

Hề hề hề,
Bạn xài thử cái này coi sao hỉ...

Filename: 150541_dlay.lsp
Tác giả: admin
Bài viết gốc: 912
Tên lệnh: caltxt%09
[Đã xong] Lisp tính toán công thức toán học của đối tượng text

Tại sao bạn không sử dụng bảng (table) trong AutoCAD? đối tượng này giống hệt excel. Chi tiết, xin xem thêm bài viết của bemove tại: http://www.cadviet.com/forum/index.php?sho...0&#entry869

Nếu đó vẫn chưa phải là câu trả lời thì không rõ đối tượng...
>>
Tại sao bạn không sử dụng bảng (table) trong AutoCAD? đối tượng này giống hệt excel. Chi tiết, xin xem thêm bài viết của bemove tại: http://www.cadviet.com/forum/index.php?sho...0&#entry869

Nếu đó vẫn chưa phải là câu trả lời thì không rõ đối tượng của bạn là gì, Text hay block attribute? Nếu bạn thống kê không sử dụng lisp, bạn có thể dùng chức năng table rất dễ dàng (như đã nói ở trên). Còn nếu bạn thống kê có sử dụng lisp, tại sao bạn không chèn công thức trong mã lệnh lisp luôn (các chương trình lisp thống kê thường tích hợp vào luôn)/

Nếu các cách trên vẫn chưa phải là mục đích của bạn, bạn hãy nêu rõ hơn nữa về yêu cầu của bạn.

----------------------------------------------
Nhân đây, có 1 lisp có thể tính toán hiệu quả giá trị của text trong AutoCAD xin tặng các thành viên cadviet:


lisp này với lệnh caltxt có tác dụng thay thế một đối tượng text chứa công thức bằng giá trị của công thức đó.
VD: text có giá trị: (1+2-3+4*5)/6 sẽ được thay bằng 3.3333
<<

Filename: 912_caltxt%09.lsp
Tác giả: ssg
Bài viết gốc: 20813
Tên lệnh: rg
Vẽ ống mềm kiểu ruột gà
Thì ra là cái ống mềm. Là nhà kỹ thuật, bạn hãy tập diễn đạt mọi vấn đề theo phong cách kỹ thuật: ngắn gọn, rõ ràng, kèm theo ví dụ minh hoạ. Chẳng hạn: tôi muốn có chương trình vẽ cái ống nối mềm (thuật ngữ là flexible tube, dân gian có khi gọi là ống ruột gà). Cái này dùng khá phổ biến...
>>
Thì ra là cái ống mềm. Là nhà kỹ thuật, bạn hãy tập diễn đạt mọi vấn đề theo phong cách kỹ thuật: ngắn gọn, rõ ràng, kèm theo ví dụ minh hoạ. Chẳng hạn: tôi muốn có chương trình vẽ cái ống nối mềm (thuật ngữ là flexible tube, dân gian có khi gọi là ống ruột gà). Cái này dùng khá phổ biến trong kỹ thuật lẫn đời sống, không riêng gì ngành Điều hoà không khí của bạn. Ví dụ: dùng cho chỗ nối ống cho phép co giãn được của tất cả các hệ thống dẫn khí, nước, hơi nước, dầu...; ống lồng dây điện, ống dẫn nước ra vòi hoa sen... Nếu bạn diễn đạt như vậy thì chắc ai cũng hiểu!
Sơ bộ như vậy, nhưng yêu cầu lập trình phải chi tiết hơn. Bạn đưa ví dụ bằng file dwg là đúng bài rồi, tự thân nó nói lên nhiều điều không cần giải thích. Tuy nhiên, cần phải cụ thể hơn nữa. Nếu không, viết chương trình mất công mà kết quả có khi không đúng ý bạn. Xin nhắc lại, quan điểm của mình cũng như anh Hoành: không ngại lập trình nhưng rất ngại phải sửa đi sửa lại!
Tạm thời, bạn thử đoạn chương trình sau, tên lệnh RG, chỉ áp dụng cho đoạn thẳng. Bạn xem kết quả có đúng ý không. Nếu OK, sẽ có chương trình cho các đoạn ống với hình dạng bất kỳ (đường tâm là line, pline, spline, arc, circle):

<<

Filename: 20813_rg.lsp
Tác giả: Tue_NV
Bài viết gốc: 71916
Tên lệnh: pgp
không dùng lệnh tắt pgp được

Lệnh để gọi acad.pgp là _ai_editcustfile
Còn dùng lệnh tắt thì có lệnh tắt này : pgp. Muốn thay tên gì thì tuỳ bạn. Chỉ cần thay lại cái tên pgp ở dòng
(defun c:pgp()
:s_big:

Filename: 71916_pgp.lsp
Tác giả: hochoaivandot
Bài viết gốc: 168028
Tên lệnh: vd
[Yêu Cầu]Chuyển Dữ Liệu Excel Sang đối Tượng Table Trong Cad


Hochoaivandot chưa làm xong yêu cầu mình đã đưa ra. Nhưng sau 1 đêm mò, mình cũng biết cách dùng lisp tạo Table
Càng vọc cái này càng thấy hay nên mình post lên anh chị em nào quan tâm thì có thể xem:
(vl-load-com)
(defun C:vd ()
(setq *ms* (vla-get-modelspace...
>>


Hochoaivandot chưa làm xong yêu cầu mình đã đưa ra. Nhưng sau 1 đêm mò, mình cũng biết cách dùng lisp tạo Table
Càng vọc cái này càng thấy hay nên mình post lên anh chị em nào quan tâm thì có thể xem:
(vl-load-com)
(defun C:vd ()
(setq *ms* (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
(setq
numofrow 6
numofcolmn 3
heightofrow 0.5
widthofcolmn 2.5
)
(setq pt1 (getpoint "\nPick point for table "))
(setq myTable (vla-AddTable *ms* (vlax-3d-point pt1) numofrow numofcolmn heightofrow widthofcolmn))
(vla-setText mytable 0 0 "Tieu de")
(vla-setText mytable 1 0 "STT")
(vla-setText mytable 1 1 "Ho va ten")
(vla-setText mytable 1 2 "So tien")
(vla-setText mytable 2 0 "1")
(vla-setText mytable 2 1 "Le A")
(vla-setText mytable 2 2 "20000")
(vla-setText mytable 3 0 "2")
(vla-setText mytable 3 1 "Duong B")
(vla-setText mytable 3 2 "30000")
(vla-setText mytable 4 0 "3")
(vla-setText mytable 4 1 "Do C")
(vla-setText mytable 4 2 "5000")
(vla-setText mytable 5 0 "Tong cong")
(vla-setText mytable 5 2 "=sum(C2:C5)")
(vlax-release-object myTable)
(vlax-release-object *ms*)
(princ)
); end defun


Còn cái yêu cầu của mình hơi không chính đáng (không thật cần thiết) nên chưa thấy nhiều sự giúp đỡ.
Chắc phải mò 1 mình rồi.
P/S: Code trên mình dùng với cad 2007 thì Ok.
Cái thèn TABLE ni có thể dùng công thức chắc có thể vận dụng tốt làm cái thống kê thép đây!
<<

Filename: 168028_vd.lsp
Tác giả: nguyentuyen6
Bài viết gốc: 113777
Tên lệnh: tt
Tác giả: tdvn
Bài viết gốc: 57882
Tên lệnh: moctim bangtdmt
Xuất file *.txt cho chiều dài các cạnh


Bạn thấy đấy. Vì muốn tạo một cái block như ý của bạn mà mình phải nhờ tới "cộng đồng" cadviet mới làm ra đc đấy chứ không phải đơn giản đâu. Có thể bạn cũng đã đọc thấy rồi. Vì thời gian có hạn nên mình cũng không nghiên cứu sâu về cái "block động" ngay...
>>

Bạn thấy đấy. Vì muốn tạo một cái block như ý của bạn mà mình phải nhờ tới "cộng đồng" cadviet mới làm ra đc đấy chứ không phải đơn giản đâu. Có thể bạn cũng đã đọc thấy rồi. Vì thời gian có hạn nên mình cũng không nghiên cứu sâu về cái "block động" ngay đc, tạm sử dụng cái block của bạn "abcd" rồi chỉnh lại chút ít. Nếu bạn muốn có cái block như ý mình thì hãy nghiên cứu thêm để dùng nhé.
Mình post cho bạn cái file mình đã chỉnh lại để lisp sử dụnh để insert vào bản vẽ (nó chỉ "động" trên cad đời cao hơn 2004 - mình chạy trên cad2008): http://www.cadviet.com/upfiles/TRUTIM_R8.dwg
Còn trong code lisp bạn thay thế như vậy :
;thay dòng
(command "_.insert" "MOCTIM" "s" k p 0.0 so)
;thành dòng
(command "_.insert" "TRUTIM-R8" "s" (/ k 100.0) p 0.0 so "CDTK" "CDTC")
code đầy đủ :

<<

Filename: 57882_moctim_bangtdmt.lsp
Tác giả: q288
Bài viết gốc: 68248
Tên lệnh: dth
tim list tính diện tích theo 2 tỷ lệ X Y khác nhau


Bạn thử cái này xem. Khi nhập tỷ lệ chỉ nhập 100, 200.. ko nhập 1/100, 1/200.
Kết quả đưa ra file ketqua.txt trong cùng thư mục với file cad.
Chú ý vì lệnh boundary chỉ làm đc với đa giác kín và zoom cho thấy đủ đa giác đó (trong tầm nhìn).
Có vòng lặp cho nên nếu muốn thoát thì enter.

Filename: 68248_dth.lsp
Tác giả: jikibo
Bài viết gốc: 433
Tên lệnh: c1 c2 c4
Ứng dụng LISP để vẽ bản vẽ kiến trúc (phần cơ bản)
Nhanh quá! Cái lisp NN kia giúp tôi đỡ được bao nhiêu công khi phải BO line thanh PLINE.

Giờ đến vễ cửa, cửa đi, cửa sổ... nhiều quá. Copy từ thư viện ra thì lại phải SCALE rồi làng nhằng LAYER không đúng với bản vẽ của mình ! Vậy thì co cách nào không nhỉ?

Bài 5: Vẽ cửa đi
>>
Nhanh quá! Cái lisp NN kia giúp tôi đỡ được bao nhiêu công khi phải BO line thanh PLINE.

Giờ đến vễ cửa, cửa đi, cửa sổ... nhiều quá. Copy từ thư viện ra thì lại phải SCALE rồi làng nhằng LAYER không đúng với bản vẽ của mình ! Vậy thì co cách nào không nhỉ?

Bài 5: Vẽ cửa đi



Có 2 lệnh trong lisp này.
w1: vẽ cửa sổ kiểu 1
w2: vẽ cửa sổ kiểu 2
<<

Filename: 433_c1_c2_c4.lsp
Tác giả: jikibo
Bài viết gốc: 433
Tên lệnh: w1 w2
Ứng dụng LISP để vẽ bản vẽ kiến trúc (phần cơ bản)
Nhanh quá! Cái lisp NN kia giúp tôi đỡ được bao nhiêu công khi phải BO line thanh PLINE.

Giờ đến vễ cửa, cửa đi, cửa sổ... nhiều quá. Copy từ thư viện ra thì lại phải SCALE rồi làng nhằng LAYER không đúng với bản vẽ của mình ! Vậy thì co cách nào không nhỉ?

Bài 5: Vẽ cửa đi
>>
Nhanh quá! Cái lisp NN kia giúp tôi đỡ được bao nhiêu công khi phải BO line thanh PLINE.

Giờ đến vễ cửa, cửa đi, cửa sổ... nhiều quá. Copy từ thư viện ra thì lại phải SCALE rồi làng nhằng LAYER không đúng với bản vẽ của mình ! Vậy thì co cách nào không nhỉ?

Bài 5: Vẽ cửa đi



Có 2 lệnh trong lisp này.
w1: vẽ cửa sổ kiểu 1
w2: vẽ cửa sổ kiểu 2
<<

Filename: 433_w1_w2.lsp
Tác giả: jikibo
Bài viết gốc: 438
Tên lệnh: jl
Ứng dụng LISP để vẽ bản vẽ kiến trúc (phần cơ bản)
Bản vẽ cũng ổn rồi. chuẩn bị viết TEXT và Dim thôi. Nhưng trước khi chuyển sang phần mới. Tôi muốn cho cho các bạn biết thêm 2 mẹo nữa khi vẽ.

Bài 8: Break đối tượng
Nhiều người sẽ bảo có lệnh Break (br) rồi cần gì LISP. Nhưng không! Lệnh BR thường không chặt...
>>
Bản vẽ cũng ổn rồi. chuẩn bị viết TEXT và Dim thôi. Nhưng trước khi chuyển sang phần mới. Tôi muốn cho cho các bạn biết thêm 2 mẹo nữa khi vẽ.

Bài 8: Break đối tượng
Nhiều người sẽ bảo có lệnh Break (br) rồi cần gì LISP. Nhưng không! Lệnh BR thường không chặt điểm mà chặt đoạn nếu ta không cẩn trọng.



Lệnh jl rất tiện. Bạn thử dùng mà xem...

Hẹn gặp lại vào bài sau "Những Lisp sử dụng để hoàn thiện bản vẽ". Chúc các bạn vui vẻ
<<

Filename: 438_jl.lsp
Tác giả: ssg
Bài viết gốc: 48931
Tên lệnh: dl
Chia đất!!!
Chủ đề này đã từng post trên diễn đàn nhưng đã mất vì có lần host dữ liệu bị sự cố. Nay có yêu cầu tương tự của bạn tuannguyen, ssg xin post lại.

Bài toán:
Cho 1 pline kín c và một đường thẳng d cắt c tại ít nhất 2 điểm, chia c thành 2 phần có diện tích S1 và S2.
Xác...
>>
Chủ đề này đã từng post trên diễn đàn nhưng đã mất vì có lần host dữ liệu bị sự cố. Nay có yêu cầu tương tự của bạn tuannguyen, ssg xin post lại.

Bài toán:
Cho 1 pline kín c và một đường thẳng d cắt c tại ít nhất 2 điểm, chia c thành 2 phần có diện tích S1 và S2.
Xác định vị trí đúng của đường d (không thay đổi phương) sao cho S1/(S1+S2) = k (số k<1 tuỳ ý).

Hình minh hoạ:
http://www.cadviet.com/upfiles/ChiaDat2.jpg

Chương trình lisp, lệnh DL (Divide Land):


Diễn giải:
Chọn pline kín c, chọn line d, pick 1 điểm bên trong pline, nhập hệ số tỷ lệ k tương ứng với "phần đất" tại điểm pick. Chương trình sẽ di chuyển đường d đến vị trí gần đúng, dao động quanh vị trí đúng và dừng lại khi đạt độ chính xác đến 8 chữ số thập phân.
Dùng cái này để chia đất... "từ đường hương hoả" bảo đảm công bằng, khỏi phải kình cãi làm anh chị em mất đoàn kết!
<<

Filename: 48931_dl.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 3298
Tên lệnh: dtm
Tính diện tích 1 miền bằng pick điểm
Theo đúng yêu cầu, bạn thử xem nhé!
lệnh là DTM (diện tích miền)


Lisp trên rất cơ bản, chỉ tính đúng với các miền không có "lỗ thủng".

Filename: 3298_dtm.lsp
Tác giả: gp14
Bài viết gốc: 45448
Tên lệnh: 1 2
Layer Filter Properties

Bạn dùng thử cái này xem sao:

Đổi lại theo tên layer mà bạn hay dùng là được.

Filename: 45448_1_2.lsp

Trang 11/148

11