Jump to content
InfoFile
Tác giả: gia_bach
Bài viết gốc: 80584
Tên lệnh: linka
LISP : Ánh xạ giá trị đối tượng (thay đổi giá trị nguồn -> Đích cập nhật theo)


Bổ sung tính diện tích của "HATCH" và tỉ lệ khi tính diện tích.

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


Chào bác Meohoang,
Bác thử dùng cái này coi sao nhé.
Mình bổ sung thêm vào lisp để có thể sử dụng với các loại đường LINE, POLYLINE, và LWPOLYLINE bác ạ.
Thực ra cái đường 2Dpolyline như bác nêu chính là cái đường LWPOLYLINE mà mình đã làm trong cái lisp cũ. Tuy nhiên với POLYLINE tức là đường 3Dpolyline thì lisp không đúng nữa do với các POLYLINE này sau khi break nó sẽ tạo ra hai...
>>

Chào bác Meohoang,
Bác thử dùng cái này coi sao nhé.
Mình bổ sung thêm vào lisp để có thể sử dụng với các loại đường LINE, POLYLINE, và LWPOLYLINE bác ạ.
Thực ra cái đường 2Dpolyline như bác nêu chính là cái đường LWPOLYLINE mà mình đã làm trong cái lisp cũ. Tuy nhiên với POLYLINE tức là đường 3Dpolyline thì lisp không đúng nữa do với các POLYLINE này sau khi break nó sẽ tạo ra hai đối tượng hoàn toàn mới và cái đối tượng cũ (ename) bị mất đi. Vì thế cái lệnh Pedit của mình không còn đúng nữa.
Với các line cũng vậy break thì ngon nhưng khi pedit lại phải thay đổ cấu trúc lệnh mới được và sau khi pedit thì các LINE sẽ trở thành LWPOLYLINE.
Vì thế mình dùng thêm hàm điều kiện để pedit cho từng trường hợp cụ thể. Bác cứ xem thêm trong lisp sẽ hiểu cách mình làm.
Cách này tuy chưa gọn gàng lắm nhưng có thể dùng được bác ạ.
Mong bác dùng thử và cho ý kiến để mình rút kinh nghiệm nha.

Chúc bác khỏe và vui.

PS: các loại đường khác như arc , cung elip và spline mình thấy hình như mọi người ít dùng nên cũng chưa nghiên cứu rõ lắm. Nếu bác xét thấy cần thiết thì mình sẽ thử cố tí nữa xem sao. Hề hề hề....
<<

Filename: 80425_nbpl.lsp
Tác giả: ssg
Bài viết gốc: 7993
Tên lệnh: are
Cách tính diện tích hình 3D

1) Dùng lệnh Cad:

- Gõ lệnh bo (boundary), pick vào vùng cần tính -> 1 pline kín được tạo thành.
- Select nó, gõ lệnh mo sẽ thấy diện tích. Nếu không cần đến nó nữa thì bấm del.

2) Dùng lisp:

Gõ lệnh are, toàn bộ thao tác trên được thực hiện tự động.


Filename: 7993_are.lsp
Tác giả: gia_bach
Bài viết gốc: 79984
Tên lệnh: brk
Lisp biến 1 phần của đoạn thẳng trở thành nét Hidden2.
Sửa lỗi trong trường hợp gọi lệnh trong hệ tọa độ của người sử dụng UCS
và bổ sung phần các điểm chọn trùng với 2 đầu mút.

Filename: 79984_brk.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 80351
Tên lệnh: nbpl
Thêm node vào đường Pline
para que sirve prelox blue Just so the rest of the world understands; Not everyone who lives in the South is a stupid jackass. For some unkown reason these people keep getting elected as Judges down here. Not that the Georgia State Legislature doesn’t have an inordinate amount of Wackos too. My guess is that our Politicians have, over the years, embarassed us to the point that any...
>>
para que sirve prelox blue Just so the rest of the world understands; Not everyone who lives in the South is a stupid jackass. For some unkown reason these people keep getting elected as Judges down here. Not that the Georgia State Legislature doesn’t have an inordinate amount of Wackos too. My guess is that our Politicians have, over the years, embarassed us to the point that any normally bright resident would feel ashamed to be assocated with them and therefore none of us will have a thing to do with Public Office. M. Lewis Macon, Georgia, USA
can i take manforce daily The Daily News has some of the most memorable photos in sports history. From legendary boxers and iconic tennis players to golfing greats and fabled Olympians, the Daily News has the photos you want of the once-in-a-lifetime sports moments. Find yours today and relive history.
penon cream price In a test, 29 ballerinas and 20 female rowers of a similar age and fitness level were spun around in rotating chairs in a dark room. The women were asked to turn a wheel on their chairs in rhythm with the spinning sensation they experienced after the chairs were brought to a halt.
duratia dadha pharma Over the years, the car has proved reliable and dependable. This month, Gordon clocked the car’s 3 millionth mile and was awarded the world record for the greatest ever recorded mileage by a single owner of a vehicle by the Guinness Book of World Records. He claimed the same award back in 2002 when the car’s odometer hit 2 million miles.
trifecta andro kit Darvish struggled with his command from the start, bouncing balls in front of the plate and piling up his pitch count. By the second, he had already matched a season high with four walks and had thrown 42 pitches.
order kgr 100 potenzmittel The law firm Weil, Gotshal & Manges, which serves as lead counsel for the Lehman estate, has earned over $484 million, with lawyers billing as much as $1000 an hour. The firm said in a court filing last year that its staff members devoted more than 747,000 hours to the case between September 2008 and its emergence from Chapter 11 protection in March of last year.
tadaga power Cruz seemed to have the catch, but as he and corner Brandon Boykin tumbled to the ground, Boykin stripped the ball away. The play was initially ruled an interception, and a booth review confirmed that call.
world abs tongkat ali "The Mexican navy and its ground forces still have close ties to the U.S.," Grayson said. "PRI is not going to say "We want to thank the U.S. government." And the U.S. government is willing to keep a low profile."
libimax vs libigrow Ivory had every reason to question why he had only one carry in the final 14½ minutes of the Jets’ 13-10 loss to the Patriots last week. Mornhinweg dialed up 17 plays in that span, including five rushes, without turning to him.
cos 㸠il filagra Gary: Now it's a case of be awesome or be gone. You don't get the time to find your feet. I mean, we had so many terrible gigs and it was before camera-phones, so none of them were ever recorded. A band growing up now - even if they're not successful at the beginning, at some point those video things are going to come around like a bad smell.

<<

Filename: 80351_nbpl.lsp
Tác giả: gia_bach
Bài viết gốc: 79598
Tên lệnh: exptxt
Xin lisp xuất toạ độ và cao độ cùng lúc

File của bạn nhiều rác quá!
Gửi bạn Lisp xuất tọa độ ra File Txt trên CadViet. (sorry vì không nhớ tác giả!)

Filename: 79598_exptxt.lsp
Tác giả: gia_bach
Bài viết gốc: 79845
Tên lệnh: brk
Lisp biến 1 phần của đoạn thẳng trở thành nét Hidden2.

Đôi điều về lệnh Break trong truờng hợp chia đôi đối tuợng gốc (2 đối tượng được tạo ra).
Xét đối tuợng với 2 tham số Param : StartParam và EndParam (vlax-curve-getStartParam curve) và (vlax-curve-getEndParam curve)
- đối tuợng tạo mới (entlast) là đối tuợng bao gồm phần có tham số Param lớn hơn (EndParam)
- đối tuợng gốc là đối tuợng bao gồm phần có tham số Param nhỏ hơn...
>>

Đôi điều về lệnh Break trong truờng hợp chia đôi đối tuợng gốc (2 đối tượng được tạo ra).
Xét đối tuợng với 2 tham số Param : StartParam và EndParam (vlax-curve-getStartParam curve) và (vlax-curve-getEndParam curve)
- đối tuợng tạo mới (entlast) là đối tuợng bao gồm phần có tham số Param lớn hơn (EndParam)
- đối tuợng gốc là đối tuợng bao gồm phần có tham số Param nhỏ hơn (StartParam)

Như vậy truớc khi gọi lệnh BREAK cần sắp xếp lại thứ tự các "Điểm chọn thứ nhất" và "Điểm chọn thứ hai" theo thứ tự giảm dần (hoặc tăng dần tùy ý) của Param tuơng ứng với các điểm đã chọn. (vlax-curve-getParamAtPoint curve pt)

Gửi bạn Code có bổ sung phần kiểm tra sự tồn tại của LineType Hidden2 (nếu chưa có, Load nó)
Chấp nhận các đối tuợng Line, PLine, SPLine, Arc.

<<

Filename: 79845_brk.lsp
Tác giả: Thaistreetz
Bài viết gốc: 79386
Tên lệnh: hg
Lisp thay thế lệnh Replace all !!!

với text thì bạn dùng cái này

Filename: 79386_hg.lsp
Tác giả: gia_bach
Bài viết gốc: 79498
Tên lệnh: hg
Lisp thay thế lệnh Replace all !!!

Chẳng có gì đáng sợ cả, Bị treo máy vài lần thì nhận ra ngay thôi. :cheers:

Hàm vl-string-search và vl-string-subst có tham số start-pos chỉ vị trí bắt đầu tìm kiếm hay thay thế.
kết hợp với tham số này sẽ giải quyết đuợc lỗi trên.
(defun ReplaceString (old_str new_str str / m n)
...
>>

Chẳng có gì đáng sợ cả, Bị treo máy vài lần thì nhận ra ngay thôi. :cheers:

Hàm vl-string-search và vl-string-subst có tham số start-pos chỉ vị trí bắt đầu tìm kiếm hay thay thế.
kết hợp với tham số này sẽ giải quyết đuợc lỗi trên.
(defun ReplaceString (old_str new_str str / m n)
(setq m 0 n (strlen new_str))
(while (setq m (vl-string-search old_str str m))
(setq str (vl-string-subst new_str old_str str m))
(setq m (+ n m))
)
str
)
test : (ReplaceString "Cadviet" "Forum Cadviet" "Cadviet1 Cadviet2 Cadviet3 Cadviet4")
-> "Forum Cadviet1 Forum Cadviet2 Forum Cadviet3 Forum Cadviet4"

Cập nhật Lisp Tìm và thay thế.
<<

Filename: 79498_hg.lsp
Tác giả: thiep
Bài viết gốc: 79579
Tên lệnh: vex
Thêm node vào đường Pline

Chào bác laogia, lisp này khắc phục lisp them_dinh_pline_2.vlx của bác Nataca sẽ không kén vị trí điểm cần insert: ngoài pline (vị trí góc tù), trên pline, thêm node đầu pline, cuối pline.

Filename: 79579_vex.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 78692
Tên lệnh: tkc
LISP tự động cộng liên tiếp khoảng cách giữa các điểm bất kỳ

Chào bạn Votanphu,
Cái này cho phép bạn đo nhiều đoạn thẳng và cho ra kết quả tổng độ dài của các đoạn thẳng đó.


Sau khi bạn đã chọn đoạn thẳng thứ hai thì lisp sẽ hỏi bạn có muốn tiếp tục hay không. Nếu bạn trả lời "y" thì nó cho bạn chọn tiếp đoạn thẳng thứ ba và cứ thế cho đến khi bạn trả lời "n". Khi ấy lisp sẽ cho ra kết quả cuối cùng bạn...
>>

Chào bạn Votanphu,
Cái này cho phép bạn đo nhiều đoạn thẳng và cho ra kết quả tổng độ dài của các đoạn thẳng đó.


Sau khi bạn đã chọn đoạn thẳng thứ hai thì lisp sẽ hỏi bạn có muốn tiếp tục hay không. Nếu bạn trả lời "y" thì nó cho bạn chọn tiếp đoạn thẳng thứ ba và cứ thế cho đến khi bạn trả lời "n". Khi ấy lisp sẽ cho ra kết quả cuối cùng bạn nhé.
Chúc bạn vui.
<<

Filename: 78692_tkc.lsp
Tác giả: master_worse
Bài viết gốc: 78852
Tên lệnh: ort
Chỉnh góc nghiêng (Oblique) của text theo góc quay (Rotation) của text

Chú ý: text phải xoay trước khi thực hiện lệnh lisp này


Filename: 78852_ort.lsp
Tác giả: ssg
Bài viết gốc: 7910
Tên lệnh: lk cik rk ck mk ok
Viết Lisp theo yêu cầu

Tất cả có 6 lệnh: Line, Circle, Rectangle, Copy, Move, Offset. Có lẽ cũng đủ dùng cho các thao tác cơ bản?
Xin lưu ý các dòng nhắc nhở ở đầu chương trình. Tác giả vẫn bảo lưu quan điểm và mong rằng đến một lúc nào đó sẽ không còn ai cần đến chuơng trình này nữa!


Filename: 7910_lk_cik_rk_ck_mk_ok.lsp
Tác giả: gia_bach
Bài viết gốc: 78675
Tên lệnh: d2t
Tác giả: phamthanhbinh
Bài viết gốc: 78689
Tên lệnh: tkc
LISP tự động cộng liên tiếp khoảng cách giữa các điểm bất kỳ

Chào bạn Votanphu,
Bạn xài thử cái này xem đúng ý bạn chưa nhé.

Chúc bạn vui.

Filename: 78689_tkc.lsp
Tác giả: ssg
Bài viết gốc: 7869
Tên lệnh: lk
Viết Lisp theo yêu cầu

Không đơn giản vậy, không riêng gì lệnh line, còn các lệnh khác thì sao? Nhất là các lệnh trong nhóm modify, như stretch chẳng hạn, rất khó xử lý. Đã làm thì phải triệt để, không thể nửa vời được.
Chiều ý các bạn, mình đã làm thử 1 đoạn sau, chỉ riêng cho lệnh line. Khi bạn dùng chuột định hướng và nhập số thì không có vấn đề gì, nhưng khi sử dụng object snap bạn sẽ...
>>

Không đơn giản vậy, không riêng gì lệnh line, còn các lệnh khác thì sao? Nhất là các lệnh trong nhóm modify, như stretch chẳng hạn, rất khó xử lý. Đã làm thì phải triệt để, không thể nửa vời được.
Chiều ý các bạn, mình đã làm thử 1 đoạn sau, chỉ riêng cho lệnh line. Khi bạn dùng chuột định hướng và nhập số thì không có vấn đề gì, nhưng khi sử dụng object snap bạn sẽ thấy nó thế nào ấy. Mình muốn bắt dính vào một điểm, nó không vẽ đến đó mà chạy đi đâu mất tăm! Nói thật tình, mình không mê lập các chương trình loại này, và vẫn khuyến khích các bạn luôn luôn vẽ đúng kích thước thật và dùng layout để trình bày.


<<

Filename: 7869_lk.lsp
Tác giả: gia_bach
Bài viết gốc: 78224
Tên lệnh: tkt
cho em xin lisp đếm text
Bạn dùng thử Lisp thống kê Text trên bản vẽ
kết quả gồm 2 cột :
- cột 1 : số luợng Text
- cột 2 : giá trị Text

Filename: 78224_tkt.lsp
Tác giả: Tue_NV
Bài viết gốc: 78490
Tên lệnh: ltruc
Viết lisp theo yêu cầu [phần 2]

Chào anh Duy và bạn Trần Diệu Nhân
Code này Tue_NV viết theo ý anh Duy
-> Tue_NV nghĩ rằng sử dụng Block chèn vào sẽ thích hợp hơn cho việc chỉnh cột sau này. Nếu bạn sử dụng Lisp BX và BY trong bộ ACV của bác Hoành có thể biết được điều đó .
"BX : di chuyển Block theo phương X
BY : di chuyển Block theo phương Y"

Đây là Lisp chèn Block cột với kích thước là axb vào...
>>

Chào anh Duy và bạn Trần Diệu Nhân
Code này Tue_NV viết theo ý anh Duy
-> Tue_NV nghĩ rằng sử dụng Block chèn vào sẽ thích hợp hơn cho việc chỉnh cột sau này. Nếu bạn sử dụng Lisp BX và BY trong bộ ACV của bác Hoành có thể biết được điều đó .
"BX : di chuyển Block theo phương X
BY : di chuyển Block theo phương Y"

Đây là Lisp chèn Block cột với kích thước là axb vào lưới cột
a: cạnh dài cột theo phương X và b là cạnh ngắn cột theo phương Y
Code đây :

Edit : đã fix một lỗi. Các bạn chạy chưa được test lại dùm. Thanks

@ Trần Diệu Nhân : Bạn chỉ cần đóng góp nhiều cho diễn đàn là quý lắm rồi. Với Tue_NV chỉ cần điều đó.
Và nếu bạn muốn ủng hộ đồng bào miền Trung thì mình ủng hộ ý kiến của bạn. Miền Trung phải hứng chịu hậu quả của cơn bão thiệt tình buồn lắm :D . Mình nghĩ nếu bạn có tấm lòng thì tất nhiên bạn sẽ có cách để ủng hộ đồng bào miền Trung mà. Mình nói vậy đúng không? Thôi, mình không nên bàn chủ đề này ở đây Nhân nhé
:tongue2:
<<

Filename: 78490_ltruc.lsp
Tác giả: gia_bach
Bài viết gốc: 77681
Tên lệnh: qu
Viết lisp theo yêu cầu [phần 2]

Hy vọng đúng ý bạn.

Filename: 77681_qu.lsp
Tác giả: gia_bach
Bài viết gốc: 77689
Tên lệnh: mat
Lisp MATTEXT bị lỗi ???

Update theo yêu cầu: số số lẻ do nguời dùng nhập.

Filename: 77689_mat.lsp

Trang 3/330

3