Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
hoquangvinh

Nhờ Viết Lisp Copy Text

Các bài được khuyến nghị

Mình đã tìm trên diễn đàn và Google rồi nhưng hoặc là chưa thấy hoặc là chưa đúng với ý đồ của mình

Nếu ai biết nội dung đã có thì chỉ hộ mình với còn không thì mình nhờ viết hộ lisp copy giá trị text này sang text khác đã có như sau:

1. Tên lệnh.

2. Chọn đối tượng text cần copy.

3. Chọn đối tượng text cần paste (có thể 1 hoặc nhiều đối tượng).

4. Kết thúc lệnh.

Nếu đc thì có thể đổi màu cho text đã gán giá trị mới thì tốt.

Cảm ơn cả nhà!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Code cho bạn. Hy vong là đúng yêu cầu. he he

 

(defun c:dcc (/ sl s1 s2)
(setvar "cmdecho" 0)
(setq s1 (entget (car (entsel "\nChon text goc:"))))
(princ "\nChon cac Text can thay doi.")
(setq s2 (ssget '((0 . "TEXT,MTEXT"))))
(setq sl (sslength s2))
(setq dem 0)
(while (< dem sl)
(setq nds2 (entget (ssname s2 dem)))
(setq text (cdr (assoc 1 s1)))
(setq thaythe (subst (cons 1 text) (assoc 1 nds2) nds2))
(entmod thaythe)
(setq dem (1+ dem))
)
)
  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

1. Lisp trên ban đầu ko chạy đc

...........

2. Đổi lại tên lệnh thì OK vì trùng tên lệnh phần mềm của mình hehe

Thanks bạn nhé.

Còn có vấn đề đổi màu text thay giá trị nữa mình được voi đòi tiên luôn có ai giúp nốt mình với nhỉ.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Ko biết paste dòng này vào có cần thêm () ở các dòng nào khác nữa ko mà mình vẫn chưa thấy đổi màu

Dòng lệnh trên số 1 ở cuối có phải là màu mình muốn đổi ko nhỉ

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Lisp này trên CV chắc đã có vô số rồi, chắc keyword tìm của bạn có vấn đề :)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

+ Không cần thêm "()"  dòng khác.

   Nếu bạn ko chạy được, có thể là do bạn chưa load hàm "VL".

   thì thêm dòng sau đoạn (defun c:........). 

   (VL-LOAD-COM)

 

+ Số "1" là số của màu . 

Gửi lại bạn lisp, bạn chạy lại coi thế nào.

 

http://www.cadviet.com/upfiles/6/124641_dcc_1.lsp

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

+ Số "1" tương ứng màu đỏ . Tức là các Text màu khác chuyển sang màu đỏ. Không biết màu của Text bạn như thế nào.

Mình kiểm tra lisp gửi bạn, lisp trên Cad mình chạy ổn. Ko biết nguyên nhân nào mà Cad máy bạn ko nhận.  :(  :(

 

----> Cần sự trợ giúp của các anh chị giàu kinh nghiệm khác :( :( 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Mình đã tìm trên diễn đàn và Google rồi nhưng hoặc là chưa thấy hoặc là chưa đúng với ý đồ của mình

Nếu ai biết nội dung đã có thì chỉ hộ mình với còn không thì mình nhờ viết hộ lisp copy giá trị text này sang text khác đã có như sau:

1. Tên lệnh.

2. Chọn đối tượng text cần copy.

3. Chọn đối tượng text cần paste (có thể 1 hoặc nhiều đối tượng).

4. Kết thúc lệnh.

Nếu đc thì có thể đổi màu cho text đã gán giá trị mới thì tốt.

Cảm ơn cả nhà!

http://www.cadviet.com/forum/topic/18049-edit-nhanh-1-nhom-text-trong-cad/?do=findComment&comment=90765

bạn vào đường link đó, có thứ bạn cần. lisp đó mình cũng đang dùng, rất tiện và hay

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Làm thế này: Cho (entmod thaythe) lên trước (vla-put-color (vlax-ename->vla-object (ssname s2 dem)) 1)

@Danh Cong: Khi vla-put-color thì thaythe nó vẫn không bị thay thế, bởi vậy nó không thể thay thế, vấn đề là thế... hế...hế..hế... :D

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Thanks mọi người

Bạn quocmanh04tt chỉ đúng rồi mình đã làm đc

Cách của bạn Jangkobo thì ko đúng ý mình rồi: mình cần copy giá trị 1 text qua text khác chứ ko phải thay thế toàn bộ giá trị text vì mình có nhiều giá trị khác nhau

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Làm thế này: Cho (entmod thaythe) lên trước (vla-put-color (vlax-ename->vla-object (ssname s2 dem)) 1)

@Danh Cong: Khi vla-put-color thì thaythe nó vẫn không bị thay thế, bởi vậy nó không thể thay thế, vấn đề là thế... hế...hế..hế... :D

 

^^. Em chạy thử lisp trước khi đăng rồi mà. Em thấy chạy theo cả 2 cách là để lệnh "Vla" lên trước hay sau đều có kết quả như nhau. 

Nên mới chịu, ko hiểu tại sao Cad bạn kia ko làm được. Còn Cad em vẫn đổi màu rầm rầm  :blink:  :blink:

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

^^. Em chạy thử lisp trước khi đăng rồi mà. Em thấy chạy theo cả 2 cách là để lệnh "Vla" lên trước hay sau đều có kết quả như nhau. 

Nên mới chịu, ko hiểu tại sao Cad bạn kia ko làm được. Còn Cad em vẫn đổi màu rầm rầm  :blink:  :blink:

Thử thế này nhé!

- Chạy lần 1 có thể Ok (Vì text cần thay thế có thể đang ở màu Bylayer) => Nếu không phải màu Bylayer.

- Chạy lần 2 (vào lisp đổi sang màu khác)??? Xem kết quả thế nào rầm rầm hay rì rì??? :D

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

http://www.cadviet.com/forum/topic/18049-edit-nhanh-1-nhom-text-trong-cad/?do=findComment&comment=90765

bạn vào đường link đó, có thứ bạn cần. lisp đó mình cũng đang dùng, rất tiện và hay

he hôm trước có vào link rồi nhưng chưa xem cái lisp cuối bài

giờ mới check lại thì kết quả cũng đúng với yêu cầu của mình nhưng cũng thiếu phần đổi màu

Ps: cũng đã vote cho bạn nhé

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Vào lúc 12/9/2016 tại 10:11, hainguyen2014 đã nói:

Code cho bạn. Hy vong là đúng yêu cầu. he he

 

 


(defun c:dcc (/ sl s1 s2)
(setvar "cmdecho" 0)
(setq s1 (entget (car (entsel "\nChon text goc:"))))
(princ "\nChon cac Text can thay doi.")
(setq s2 (ssget '((0 . "TEXT,MTEXT"))))
(setq sl (sslength s2))
(setq dem 0)
(while (< dem sl)
(setq nds2 (entget (ssname s2 dem)))
(setq text (cdr (assoc 1 s1)))
(setq thaythe (subst (cons 1 text) (assoc 1 nds2) nds2))
(entmod thaythe)
(setq dem (1+ dem))
)
)

bạn có thể làm lại lisp này không

1. Tên lệnh.

2. Chọn đối tượng text cần copy.(có thể 1 hoặc nhiều đối tượng)

3. Chọn đối tượng text cần paste (có thể 1 hoặc nhiều đối tượng). số đối tượng copy bằng số đối tượng paste

4. Kết thúc lệnh.

Chỉ cần lấy text bên copy, bên paste hoàn toàn giữ lại mọi thuộc tính ban đầu

Cảm ơn bạn!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
7 giờ trước, newghost0000 đã nói:

bạn có thể làm lại lisp này không

1. Tên lệnh.

2. Chọn đối tượng text cần copy.(có thể 1 hoặc nhiều đối tượng)

3. Chọn đối tượng text cần paste (có thể 1 hoặc nhiều đối tượng). số đối tượng copy bằng số đối tượng paste

4. Kết thúc lệnh.

Chỉ cần lấy text bên copy, bên paste hoàn toàn giữ lại mọi thuộc tính ban đầu

Cảm ơn bạn!

Cái này còn phụ thuộc vào cách săp xếp của text không thì sẽ lấy râu ông này chắp cằm và kia

  • Like 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
1 giờ} trướ}c, huunhantvxdts đã nói:

Cái này còn phụ thuộc vào cách săp xếp của text không thì sẽ lấy râu ông này chắp cằm và kia

có thể mặc định theo cách mình chọn đối tượng copy, qui ước từ trái qua phải, từ trên xuống dưới, qui định số đối tượng copy phải bằng số đối tượng paste. như kiểu paste 1 hàng 1 cột trong excel

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
10 phút trước, newghost0000 đã nói:

có thể mặc định theo cách mình chọn đối tượng copy, qui ước từ trái qua phải, từ trên xuống dưới, qui định số đối tượng copy phải bằng số đối tượng paste. như kiểu paste 1 hàng 1 cột trong excel

Bạn không post File mẫu lên thì còn mơ hồ lắm 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
2 giờ trước, Doan Nguyen Van đã nói:

Bạn không post File mẫu lên thì còn mơ hồ lắm 

THANK BÁC

có thể hiểu đơn giản lisp sẽ copy trên cad giống như copy paste trên excel. 

VD : A1 B1 C1 D1 .....CHỌN 4 Ô VÀ COPY

PASTE VÀO Ô A3 B3 C3 D3. MẶC KỆ CÁC Ô A3 B3 C3 D3 CÓ DỮ LIỆU TEXT GÌ.KẾT QUẢ CẦN LÀ CÁC Ô A3 B3 C3 D3 VẪN GIỮ NGUYÊN VỊ TRÍ TRÊN CAD VÀ CÁC THUỘC TÍNH. CHỈ CÓ NỘI DUNG LÀ GIỐNG A1 B1 C1 D1

  • Vote giảm 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
22 phút trước, newghost0000 đã nói:

THANK BÁC

có thể hiểu đơn giản lisp sẽ copy trên cad giống như copy paste trên excel. 

VD : A1 B1 C1 D1 .....CHỌN 4 Ô VÀ COPY

PASTE VÀO Ô A3 B3 C3 D3. MẶC KỆ CÁC Ô A3 B3 C3 D3 CÓ DỮ LIỆU TEXT GÌ.KẾT QUẢ CẦN LÀ CÁC Ô A3 B3 C3 D3 VẪN GIỮ NGUYÊN VỊ TRÍ TRÊN CAD VÀ CÁC THUỘC TÍNH. CHỈ CÓ NỘI DUNG LÀ GIỐNG A1 B1 C1 D1

Bạn phải hiểu rằng cách sắp xếp trên Cad không giống như Excel là hàng và cột, mà nó có rất nhiều thứ tự khác nhau, cụ thể do người dùng.

Text của bạn lệch 1mm thôi thì thứ tự đã khác đi rồi, nên mình mới bảo bạn đưa bản vẽ cụ thể lên để còn nắm được

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
2 giờ trước, Doan Nguyen Van đã nói:

Bạn phải hiểu rằng cách sắp xếp trên Cad không giống như Excel là hàng và cột, mà nó có rất nhiều thứ tự khác nhau, cụ thể do người dùng.

Text của bạn lệch 1mm thôi thì thứ tự đã khác đi rồi, nên mình mới bảo bạn đưa bản vẽ cụ thể lên để còn nắm được

vậy chắc mình phải bỏ ý định này thôi. copy paste từng text cho chắc.tks bạn đã quan tâm

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
6 phút trước, newghost0000 đã nói:

vậy chắc mình phải bỏ ý định này thôi. copy paste từng text cho chắc.tks bạn đã quan tâm

Thật ra bài toán của bạn không khó. Cái khó là do bạn không chia sẻ thông tin cơ sở để người khác giúp thôi. Chào bạn! 

  • Like 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
52 phút trước, newghost0000 đã nói:

vậy chắc mình phải bỏ ý định này thôi. copy paste từng text cho chắc.tks bạn đã quan tâm

Hình như ý bác gần giống bài này

.Bác thử lisp trong bài đó thử xem

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay
Đăng nhập để thực hiện theo  

×