Jump to content
InfoFile
Tác giả: Tue_NV
Bài viết gốc: 60176
Tên lệnh: saptext
xuất chữ từ excel ra cad

Đầu tiên trong Excel bạn bôi đen cột có chữ a,b,c,d,e,f -> Bấm Ctrol+C -> Qua CAD -> trên thanh công cụ -> Edit -> Chọn Paste Special -> Chọn AutoCAD Entities -> OK
Như vậy ccọt có chữ a,b,c,d,e,f đã được chuyển qua CAD. Sử dụng lệnh MA để làm cho chữ a,b,c,d,e,f đó bằng với chữ ở cột có toạ độ x, y. Có thể sử dụng lệnh Scaletext. Lệnh này bạn xem ở đây :...
>>

Đầu tiên trong Excel bạn bôi đen cột có chữ a,b,c,d,e,f -> Bấm Ctrol+C -> Qua CAD -> trên thanh công cụ -> Edit -> Chọn Paste Special -> Chọn AutoCAD Entities -> OK
Như vậy ccọt có chữ a,b,c,d,e,f đã được chuyển qua CAD. Sử dụng lệnh MA để làm cho chữ a,b,c,d,e,f đó bằng với chữ ở cột có toạ độ x, y. Có thể sử dụng lệnh Scaletext. Lệnh này bạn xem ở đây : http://www.cadviet.com/forum/index.php?sho...mp;p=51051&
Sau đó, sử dụng đoạn Lisp này mà Tue_NV đã cải tiến để giãn dòng text để giãn dòng text cột a,b,c,d,e,f với khoảng cách giữa các text : bằng khoảng cách giữa 2 điểm pick. bạn pick 1 điểm ở dòng đầu của cột X (Tue_NV đã sử dụng chế độ bắt điểm Insert trong Lisp) và pick 1 điểm ở dòng tiếp theo của cột X.
Tức là Lisp sẽ lấy khoảng cách giữa các text được đo bằng 2 điểm pick trên màn hình và 2 điểm Pick này Tue_NV đã sử dụng thêm chế độ bắt điểm Insert
Sau đó bạn move cột có chữ a,b,c,d,e,f về bằng với cột X, Y là thành công. Ở đoạn này bạn sử dụng chế độ bắt điểm From + chế độ bắt điểm Insert (dùng tổ hợp phím shift + Phím phải chuột)
Lisp đây :

Chúc thành công. Có gì chưa được thì post lên đây nhé.
<<

Filename: 60176_saptext.lsp
Tác giả: Tue_NV
Bài viết gốc: 59437
Tên lệnh: mau
Lisp cho biết màu đối tượng

Mạn phép anh Duy, cho phép Tue_NV sửa lại Code cho phù hợp :
http://www.cadviet.com/forum/index.php?sho...amp;#entry49058

Filename: 59437_mau.lsp
Tác giả: Tue_NV
Bài viết gốc: 59503
Tên lệnh: mau
Lisp cho biết màu đối tượng

Không cần post bài như vậy đâu. Ở phía dưới có nút Thankss đấy.
Lisp được Tue_NV bỏ thêm vòng lặp. Bạn sử dụng thử :

Filename: 59503_mau.lsp
Tác giả: duongsatdn
Bài viết gốc: 59543
Tên lệnh: 1
Mất OSNAP khi dùng LISP

Nếu cần thiết thì bạn viết một cái lisp, nội dung chỉ có phần đặt chế độ bắt điểm, đưa nó vào cái cặp của lệnh AP. Thích cái bắt dính nào thì công các giá trị của nó lại.
Các giá trị của biến OSMODE như sau:
0 NONe
1 ENDpoint
2 MIDpoint
4 CENter
8 NODe
16 QUAdrant
32 INTersection
64 INSertion
128 PERpendicular
256 TANgent
>>

Nếu cần thiết thì bạn viết một cái lisp, nội dung chỉ có phần đặt chế độ bắt điểm, đưa nó vào cái cặp của lệnh AP. Thích cái bắt dính nào thì công các giá trị của nó lại.
Các giá trị của biến OSMODE như sau:
0 NONe
1 ENDpoint
2 MIDpoint
4 CENter
8 NODe
16 QUAdrant
32 INTersection
64 INSertion
128 PERpendicular
256 TANgent
512 NEArest
1024 QUIck
2048 APParent Intersection
4096 EXTension
8192 PARallel
Vi dụ tôi cần bắt điểm đầu END, điểm giữa MID và điểm giao nhau INT thì: lấy 1+2+32=35 ===> (setvar "osmode" 35)
Xài một lisp nào đó mà thấy chế độ bắt dính mất tiêu thì gõ cái lệnh của lisp khôi phục bắt dính ===> Xong!
Cái lisp còi xương của tôi như thế này chẳng hạn:

:mellow:
<<

Filename: 59543_1.lsp
Tác giả: Tue_NV
Bài viết gốc: 59236
Tên lệnh: copytang
Viết Lisp theo yêu cầu

Bạn sử dụng đoạn Code mà Tue_NV mới viết nhé. Hy vọng bạn hài lòng :

:mellow:

Filename: 59236_copytang.lsp
Tác giả: duy782006
Bài viết gốc: 5938
Tên lệnh: dcl
-Lệnh DCL

-Vẽ dấu cắt lững

Filename: 5938_dcl.lsp
Tác giả: Tue_NV
Bài viết gốc: 59394
Tên lệnh: timsong
Viết Lisp theo yêu cầu


Thứ nhất là Tue_NV không thích gọi bằng cậu, và lời nói của bạn khi nói thì không hay cho lắm. Bạn nhờ người khác mà lại nói như thế à? :cheers:
Dù sao thì Tue_NV cũng viết xong đoạn Code này. Thực hiện đoạn Code cho file kèm theo ( 2 hình vẽ bên tay phải)
>>

Thứ nhất là Tue_NV không thích gọi bằng cậu, và lời nói của bạn khi nói thì không hay cho lắm. Bạn nhờ người khác mà lại nói như thế à? :cheers:
Dù sao thì Tue_NV cũng viết xong đoạn Code này. Thực hiện đoạn Code cho file kèm theo ( 2 hình vẽ bên tay phải)
http://www.cadviet.com/upfiles/1_13.dwg

Có những đoạn ngoằn nghèo có lúc không được, bạn phải chỉnh tay lại thôi. Vì có những lúc con người hiểu thế mà máy không hiểu thế. Bạn hiểu ý tôi chứ?
Chào bạn
<<

Filename: 59394_timsong.lsp
Tác giả: Tue_NV
Bài viết gốc: 58676
Tên lệnh: mten
chỉ em cách ghi chú trên mũi tên với


Bạn thử dùng đoạn Code này nhé :
Tên lệnh Mten
Lisp yêu cầu :
1. Pick điểm đầu mũi tên; Pick điểm cuối của mũi tên
2. Pick điểm chèn Text; nhập chiều cao Text
-> Hiện lên hộp thoại Edit text cho bạn nhập chữ vào.
-> Xong
Chú ý trong đoạn Code mình sử dụng Font .Vnarial . Mình sử dụng bảng mã TCVN.
Nếu sử dụng font khác thì bạn sửa lại tên font...
>>

Bạn thử dùng đoạn Code này nhé :
Tên lệnh Mten
Lisp yêu cầu :
1. Pick điểm đầu mũi tên; Pick điểm cuối của mũi tên
2. Pick điểm chèn Text; nhập chiều cao Text
-> Hiện lên hộp thoại Edit text cho bạn nhập chữ vào.
-> Xong
Chú ý trong đoạn Code mình sử dụng Font .Vnarial . Mình sử dụng bảng mã TCVN.
Nếu sử dụng font khác thì bạn sửa lại tên font trong Code và chọn bảng mã để đánh chữ thích hợp

<<

Filename: 58676_mten.lsp
Tác giả: Tue_NV
Bài viết gốc: 58796
Tên lệnh: stron
Lisp căn lề tâm cho đuờng tròn

Bạn sử dụng đoạn Code mà Tue_NV mới viết xem :
Cái này có thể canh lê text và dãn dòng Text được. Bạn thử xem :

Filename: 58796_stron.lsp
Tác giả: Tue_NV
Bài viết gốc: 58898
Tên lệnh: stron
Lisp căn lề tâm cho đuờng tròn

Cái này thì em biết anh Duy à. Vì Tue_NV sử dụng Code là có chủ đích, chỉ chọn riêng TEXT hoặc riêng CIRCLE để canh lề và dãn dòng thôi. Còn néu như chỉ chọn riêng thì điều này không khó, chỉ cần thay dòng này :
(setq ss (ssget '((0 . "CIRCLE,TEXT")))
bằng dòng : (setq ss (ssget '((0 . "CIRCLE"))) : Nếu chỉ chọn Circle
bằng dòng : (setq ss (ssget '((0 . "TEXT"))) : Nếu chỉ chọn TEXT

Filename: 58898_stron.lsp
Tác giả: Tue_NV
Bài viết gốc: 58456
Tên lệnh: bu
Viết Lisp theo yêu cầu

Đây bạn:

Mình xin đính chính : Có đọan Dim là 3000 lấy giá trị 3000 chia cho bước @ (BT) và bước @ là ước số của 3000 thì ok, còn nếu chia cho các số khác mà không phải là ước số của 3000 thì hiện ra bảng thông báo là phép chia có dư và cho phép ta chọn tiếp đối tượng. Như vậy thì hay hơn phải không bạn minh tu?

Filename: 58456_bu.lsp
Tác giả: Tue_NV
Bài viết gốc: 58470
Tên lệnh: bu
Viết Lisp theo yêu cầu

Chào bác PhamthanhBinh.
Có lẽ bác chưa hiểu hết ý của bạn minhtu.
Trước khi viết Lisp Tue_NV đã chạy thử và thấy OK tất cả, nhưng không lường trước được sai số.
Ví dụ như bác dim kích thước một đoạn thẳng có kích thước là 2000.001 thì kích thước đó chạy ra kết quả là 2000 đúng không?
và với Lisp của bác như trên thì khi chọn dim 2000.001 sẽ báo lại cái dòng...
>>

Chào bác PhamthanhBinh.
Có lẽ bác chưa hiểu hết ý của bạn minhtu.
Trước khi viết Lisp Tue_NV đã chạy thử và thấy OK tất cả, nhưng không lường trước được sai số.
Ví dụ như bác dim kích thước một đoạn thẳng có kích thước là 2000.001 thì kích thước đó chạy ra kết quả là 2000 đúng không?
và với Lisp của bác như trên thì khi chọn dim 2000.001 sẽ báo lại cái dòng prompt trên. Bạn minhtu không muốn thế. Ý bạn đó là Lisp phải chạy như kích thước 2000 tròn số như bình thường. Đúng không bạn minhTu?
Tue_NV đã viết thêm vào code 1 khoảng sai số cho phép. Hy vọng bạn hài lòng

<<

Filename: 58470_bu.lsp
Tác giả: Tue_NV
Bài viết gốc: 58515
Tên lệnh: bu
Viết Lisp theo yêu cầu

Chào bạn minhTu
Chào bác PhamThanhBinh :
Hoặc giải quyết theo cách trên và Tue_NV giải quyết theo cách của mình là sử dụng hàm Rnd(x).
Và theo ý bác PhamThanhBinh, Tue_NV đã hoàn thiện theo hướng là khi người dùng nhập sai bước BT thì cho phép nhập lại

Bạn Minh Tu sử dụng và cho biết ý kiến nhé. Hy vọng bạn hài lòng

Filename: 58515_bu.lsp
Tác giả: hai_1401
Bài viết gốc: 58449
Tên lệnh: xx yy cd cv
Em muốn hỏi về lisp vừa copy vừa quay đối tượng
Có cái Lisp này rồi nhưng nó lại ko dùng để Copy Multiple được (lệnh CD ấy). Bác nào có thể sửa giúp em được ko ạ. Với cả, bỏ luôn giúp em mấy cái lệnh cắt Dim đi nhé, chỉ để lại lệnh để copy-xoay đối tượng, và phải Copy Multiple. Thanks các bác trước vậy :(




Filename: 58449_xx_yy_cd_cv.lsp
Tác giả: VUVUZELA
Bài viết gốc: 100011
Tên lệnh: wipe
Lisp convert arc, circle to polyline
Tội cho thành viên này quá ! Lâu quá rồi không thấy cao thủ CADVIET nào giúp cả
Cũng như mình post bài "Tại sao không cập nhật dữ liệu mở rộng" mà cũng không thấy xuất hiện Cao Thủ

Vì vậy, sau thời gian nghiên cứu mình sẽ giúp cho bạn đoạn mã này nhé
Mong rằng bạn sẽ thích nó. Có gì pm cho mình


Filename: 100011_wipe.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 5837
Tên lệnh: lz
Tác giả: Tue_NV
Bài viết gốc: 58417
Tên lệnh: bu
Viết Lisp theo yêu cầu

Bạn bị sai ở chổ này :
KQ : phải là một biến kí tự chữ (string). Trong đoạn Code trên thì biến KQ là kiểu số thực nên nó bị lỗi
Bạn dùng hàm Rtos để chuyển kiểu số thực sang kiểu string

BT : phải là một biến kí tự chữ (string). Trong đoạn Code trên thì biến BT là kiểu số nguyên nên nó bị lỗi
Bạn dùng hàm itoa để chuyển kiểu số nguyên sang kiểu string
>>

Bạn bị sai ở chổ này :
KQ : phải là một biến kí tự chữ (string). Trong đoạn Code trên thì biến KQ là kiểu số thực nên nó bị lỗi
Bạn dùng hàm Rtos để chuyển kiểu số thực sang kiểu string

BT : phải là một biến kí tự chữ (string). Trong đoạn Code trên thì biến BT là kiểu số nguyên nên nó bị lỗi
Bạn dùng hàm itoa để chuyển kiểu số nguyên sang kiểu string

Và ta dùng hàm strcat để nối chuỗi

Mình sửa lại cho bạn này. Bạn xem nhé :


có thể sử dụng lệnh dimedit hoặc dòng lệnh (command "dim" "newtext"....
là tuỳ bạn.
Chúc thành công :(
<<

Filename: 58417_bu.lsp
Tác giả: jikibo
Bài viết gốc: 580
Tên lệnh: ve0
Khi các đối tượng không cùng nằm trên 1 mặt phẳng
Vẽ 2d mà sao các đối tượng cứ lung tung trục Z ? Hix. Làm thế nào ???

Đây rồi. Lisp CAD hỗ trợ là bản vẽ:



Lệnh thực hiện là VE0 ( về 0 )/ Selec các đối tượng/ Enter ! OK

Ngoài ra còn 1 cách nữa. Cái này thì do EXPRESS hỗ trợ. Express/Modify/Flatten objects

http://thunglungden.org/cadviet/cad/baiviet/flatob.jpg

Filename: 580_ve0.lsp
Tác giả: gia_bach
Bài viết gốc: 58048
Tên lệnh: addvertex
Thêm node vào đường Pline

Bạn chạy thử lại Lisp này nhé.

Filename: 58048_addvertex.lsp
Tác giả: gia_bach
Bài viết gốc: 57956
Tên lệnh: addvertex
Thêm node vào đường Pline

Bạn chạy thử LISP này nhé.

Filename: 57956_addvertex.lsp

Trang 12/330

12