Đến nội dung


Hình ảnh
- - - - -

Lisp Ghép Text Cần Giúp Đỡ


  • Please log in to reply
123 replies to this topic

#21 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 07 September 2009 - 08:23 AM

-Bạn gia bach này lại phải nhờ bạn giúp rồi. Nhờ bạn chỉnh cho cái lisp trên thêm 1 chức năng như sau: tự động thay đổi màu của text sau khi thực hiện ghép text(cho đỡ nhầm lẫn với các text chưa đuợc ghép)>>>> Xin chân thành cảm ơn

Chào bachngoctung
Lisp cập nhật theo yêu cầu của bạn "đổi màu của text sau khi thực hiện ghép text"
download here
  • 2

#22 HoangSon614

HoangSon614

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 254 Bài viết
Điểm đánh giá: 66 (tàm tạm)

Đã gửi 07 September 2009 - 11:32 AM

Do có lỗi trong Insert Code Box
Đã Upload file . xem bài số 7

Chào gia_bach!
Lisp của bạn chạy rất tốt nhưng có vấn đề này mình muốn hỏi thêm
1. Lisp nối 2 đối tường là Dtext, (nhưng với Mtext thì không được?)
2. Khi nối 2 chuỗi text thì không hiểu được dấu cách (ví dụ: Chuỗi là Công, chuỗi là ty khi ghép lại là Côngty chứ không phải Công ty)
Lisp có thể giải quyết được 2 vấn đề trên không bạn, nếu được nhờ bạn nâng cấp giúp mình. Cảm ơn bạn nhiều
  • 0

#23 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 07 September 2009 - 03:23 PM

Chào gia_bach!
Lisp của bạn chạy rất tốt nhưng có vấn đề này mình muốn hỏi thêm
1. Lisp nối 2 đối tường là Dtext, (nhưng với Mtext thì không được?)
2. Khi nối 2 chuỗi text thì không hiểu được dấu cách (ví dụ: Chuỗi là Công, chuỗi là ty khi ghép lại là Côngty chứ không phải Công ty)
Lisp có thể giải quyết được 2 vấn đề trên không bạn, nếu được nhờ bạn nâng cấp giúp mình. Cảm ơn bạn nhiều

Chào HoangSon614
1. Lisp nối 2 đối tường là Dtext, (nhưng với Mtext thì không được?)
-> Trước khi chạy Lisp, Bạn dùng lệnh EXPLODE để biến MTEXT thành TEXT.

2. Khi nối 2 chuỗi text thì không hiểu được dấu cách
-> Lisp này đuợc viết theo yêu cầu của bạn bachngoctung (bạn xem bài đầu tiên), nội dung chính là ghép các Text rời rạc (dạng kí tự) thành 1 Text
vd : có 3 Text : "Diễn" "đàn" "CADViet" -> "DiễnđànCADViet" (không có dấu cách giữa các từ)
nhưng với 3 Text : "Diễn " "đàn " "CADViet" -> "Diễn đàn CADViet" (có dấu cách giữa các từ)
bạn chú ý sự khác nhau giữa chuỗi "Diễn" và "Diễn " (từ phía truớc không có dấu cách nhưng từ phía sau có dấu cách ở vị trí cuối)
Như vậy Lisp này chỉ thích hợp cho việc nối các kí tự rời rạc, còn truờng hợp của bạn là nối các từ với nhau (chèn thêm dấu cách giữa cách từ).

Gửi bạn Lisp nối các từ với nhau (có chèn thêm dấu cách giữa cách từ).
download here
  • 4

#24 HoangSon614

HoangSon614

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 254 Bài viết
Điểm đánh giá: 66 (tàm tạm)

Đã gửi 08 September 2009 - 11:13 AM

Chào HoangSon614
1. Lisp nối 2 đối tường là Dtext, (nhưng với Mtext thì không được?)
-> Trước khi chạy Lisp, Bạn dùng lệnh EXPLODE để biến MTEXT thành TEXT.

2. Khi nối 2 chuỗi text thì không hiểu được dấu cách
-> Lisp này đuợc viết theo yêu cầu của bạn bachngoctung (bạn xem bài đầu tiên), nội dung chính là ghép các Text rời rạc (dạng kí tự) thành 1 Text
vd : có 3 Text : "Diễn" "đàn" "CADViet" -> "DiễnđànCADViet" (không có dấu cách giữa các từ)
nhưng với 3 Text : "Diễn " "đàn " "CADViet" -> "Diễn đàn CADViet" (có dấu cách giữa các từ)
bạn chú ý sự khác nhau giữa chuỗi "Diễn" và "Diễn " (từ phía truớc không có dấu cách nhưng từ phía sau có dấu cách ở vị trí cuối)
Như vậy Lisp này chỉ thích hợp cho việc nối các kí tự rời rạc, còn truờng hợp của bạn là nối các từ với nhau (chèn thêm dấu cách giữa cách từ).

Gửi bạn Lisp nối các từ với nhau (có chèn thêm dấu cách giữa cách từ).
download here

Cảm ơn gia_bach nhiều lắm
  • 0

#25 ToTo08

ToTo08

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 28 July 2010 - 08:17 PM

Bạn gia_bach sửa giùm mình thêm tí là kết quả text nối theo thứ tự các text được chọn. Mình nối 2 dòng text trên và dưới thì kết quả là text trên luôn được chuyển ra đầu.
  • 1

#26 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 29 July 2010 - 10:02 AM

Bạn gia_bach sửa giùm mình thêm tí là kết quả text nối theo thứ tự các text được chọn. Mình nối 2 dòng text trên và dưới thì kết quả là text trên luôn được chuyển ra đầu.

Cật nhật theo yêu cầu : Nối text theo thứ tự các text được chọn.
(defun c:at2t (/ center color data edata ent i sel ss str);All Text to Text
(defun centerSS (ss / lst_max lst_min maxpt minpt ll ur)
(vl-load-com)
(foreach ent (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
(vla-GetBoundingBox ent 'minpt 'maxpt)
(setq lst_min (cons (vlax-safearray->list minpt) lst_min)
lst_max (cons (vlax-safearray->list maxpt) lst_max) ) )
(setq ll (list (car (vl-sort (mapcar 'car lst_min) '<))
(car (vl-sort (mapcar 'cadr lst_min) '<)) )
ur (list (last (vl-sort (mapcar 'car lst_max) '<))
(last (vl-sort (mapcar 'cadr lst_max) '<)) ) )
(mapcar '/ (mapcar '+ ll ur) '(2.0 2.0 2.0)) )

(defun Change_Str (data pt str color)
(entmake (list (cons 0 "TEXT") (assoc 8 data) (cons 10 pt)
(cons 11 pt) (assoc 7 data) (assoc 40 data)
(cons 71 0) (cons 72 1) (cons 73 2)
(cons 1 str) (cons 62 color)
(if (assoc 6 data) (assoc 6 data) '(6 . "BYLAYER") )
(if (assoc 39 data) (assoc 39 data) '(39 . 0) )
(if (assoc 370 data) (assoc 370 data) '(370 . -1) ) )) )

(defun dxf (tag obj) (cdr (assoc tag obj)))
;main
(or *color* (setq *color* 6 ))
(setq color (getint (strcat "\nNhap so mau cua Text sau khi hoan thanh <" (itoa *color*) "> :")) )
(if color (setq *color* color) (setq color *color*))
(setq ss (ssadd))
(while (setq sel (entsel "\nChon cac Text can noi voi nhau: "))
(setq ent (car sel))
(if (= (cdr (assoc 0 (entget ent))) "TEXT")
(ssadd ent ss)) )
(if (> (sslength ss) 0)
(progn
(setq i -1
str ""
center (centerSS ss)
data (entget (ssname ss 0)) )
(while (setq ent (ssname ss (setq i (1+ i))))
(setq edata (entget ent)
str (strcat str " " (dxf 1 edata)) )
(entdel ent) )
(Change_Str data center (substr str 2) color) )
(princ "\nKhong chon duoc Text !"))
(princ))

  • 5

#27 ToTo08

ToTo08

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 29 July 2010 - 09:12 PM

Cật nhật theo yêu cầu : Nối text theo thứ tự các text được chọn.

(defun c:at2t (/ center color data edata ent i sel ss str);All Text to Text
(defun centerSS (ss / lst_max lst_min maxpt minpt ll ur)
(vl-load-com)
(foreach ent (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
(vla-GetBoundingBox ent 'minpt 'maxpt)
(setq lst_min (cons (vlax-safearray->list minpt) lst_min)
lst_max (cons (vlax-safearray->list maxpt) lst_max) ) )
(setq ll (list (car (vl-sort (mapcar 'car lst_min) '<))
(car (vl-sort (mapcar 'cadr lst_min) '<)) )
ur (list (last (vl-sort (mapcar 'car lst_max) '<))
(last (vl-sort (mapcar 'cadr lst_max) '<)) ) )
(mapcar '/ (mapcar '+ ll ur) '(2.0 2.0 2.0)) )

(defun Change_Str (data pt str color)
(entmake (list (cons 0 "TEXT") (assoc 8 data) (cons 10 pt)
(cons 11 pt) (assoc 7 data) (assoc 40 data)
(cons 71 0) (cons 72 1) (cons 73 2)
(cons 1 str) (cons 62 color)
(if (assoc 6 data) (assoc 6 data) '(6 . "BYLAYER") )
(if (assoc 39 data) (assoc 39 data) '(39 . 0) )
(if (assoc 370 data) (assoc 370 data) '(370 . -1) ) )) )

(defun dxf (tag obj) (cdr (assoc tag obj)))
;main
(or *color* (setq *color* 6 ))
(setq color (getint (strcat "\nNhap so mau cua Text sau khi hoan thanh <" (itoa *color*) "> :")) )
(if color (setq *color* color) (setq color *color*))
(setq ss (ssadd))
(while (setq sel (entsel "\nChon cac Text can noi voi nhau: "))
(setq ent (car sel))
(if (= (cdr (assoc 0 (entget ent))) "TEXT")
(ssadd ent ss)) )
(if (> (sslength ss) 0)
(progn
(setq i -1
str ""
center (centerSS ss)
data (entget (ssname ss 0)) )
(while (setq ent (ssname ss (setq i (1+ i))))
(setq edata (entget ent)
str (strcat str " " (dxf 1 edata)) )
(entdel ent) )
(Change_Str data center (substr str 2) color) )
(princ "\nKhong chon duoc Text !"))
(princ))


Lisp chạy rất ổn, cám ơn bạn.
  • 1

#28 thangbkpro

thangbkpro

    biết zoom

  • Members
  • Pip
  • 12 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 28 October 2010 - 06:39 PM

Thực sự cảm ơn gia_bach với lisp này. Mình tìm được lip này và lip đếm text cũng của bạn giúp mình rút ngăn rất nhiều thời gian bóc khối lượng bản vẽ!
Mình có một vấn đề này sinh khi nối text là mình phải lặp lại lệnh at2t rất nhiều lần . Liệu có cách nào tự động nối những text có vị trí gần nhau hơn một khoảng định sẵn thành 1 text không bạn ? những text gần nhau tự nối với nhau và không nối với text khác!
Ví dụ : bản vẽ của mình có rất nhiều 4 text gần nhau có dạng như: "MCB" "3P" "32A" "10kA" sẽ được nối thành các text "MCB 3P 32A 10kA"
http://www.cadviet.c...files/3/mcb.dwg
Thank again!
  • 0

#29 thangbkpro

thangbkpro

    biết zoom

  • Members
  • Pip
  • 12 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 29 October 2010 - 04:18 PM

Thực sự cảm ơn gia_bach với lisp này. Mình tìm được lip này và lip đếm text cũng của bạn giúp mình rút ngăn rất nhiều thời gian bóc khối lượng bản vẽ!
Mình có một vấn đề này sinh khi nối text là mình phải lặp lại lệnh tkt rất nhiều lần . Liệu có cách nào tự động nối những text có vị trí gần nhau hơn một khoảng định sẵn thành 1 text không bạn ? những text gần nhau tự nối với nhau và không nối với text khác!
Ví dụ : bản vẽ của mình có rất nhiều 4 text gần nhau có dạng như: "MCB" "3P" "32A" "10kA" cùng mô tả về một thiết bị sẽ được nối thành các text "MCB 3P 32A 10kA". Sau đó mình thực hiện lip đếm text sẽ thống kê được số lượng và chủng loại aptomat trong bản vẽ.
http://www.cadviet.c...files/3/mcb.dwg
Thank again!

Chờ tin của bác từng ngày:)
  • 0

#30 viettien_03

viettien_03

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 06 January 2011 - 11:37 PM

Do có lỗi trong Insert Code Box
Đã Upload file . xem bài số 7

mình load về rùi ,chạy nó báo lỗi này error: malformed list on input vậy là sao bạn ơi ,hix help me

edit mình load được list mới rồi thank ,nhưng lần theo bài này đến đây
thì mình thử dùng mà không cái nào thành công ,đọc rất khó hiểu để sử dụng ,bạn hướng dẫn so qua được không
  • 0

#31 mokara30

mokara30

    biết zoom

  • Members
  • Pip
  • 14 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 31 October 2011 - 02:25 PM

Nhờ bác giabach chỉnh sửa lại lisp đơn giản thế này thôi, nối liền nhiều dtext lại với nhau thành Dtext và thứ tự nối là lần lượt là thứ tự các dtext được chọn, và lấy layer của Dtext đầu tiên được chọn.
  • 0

#32 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 31 October 2011 - 02:52 PM

Nhờ bác giabach chỉnh sửa lại lisp đơn giản thế này thôi, nối liền nhiều dtext lại với nhau thành Dtext và thứ tự nối là lần lượt là thứ tự các dtext được chọn, và lấy layer của Dtext đầu tiên được chọn.

Phải như thế này ko?

(defun c:at2t (/ center color data edata ent i sel ss str);All Text to Text
(defun centerSS (ss / lst_max lst_min maxpt minpt ll ur)
(vl-load-com)
(foreach ent (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
(vla-GetBoundingBox ent 'minpt 'maxpt)
(setq lst_min (cons (vlax-safearray->list minpt) lst_min)
lst_max (cons (vlax-safearray->list maxpt) lst_max) ) )
(setq ll (list (car (vl-sort (mapcar 'car lst_min) '<))
(car (vl-sort (mapcar 'cadr lst_min) '<)) )
ur (list (last (vl-sort (mapcar 'car lst_max) '<))
(last (vl-sort (mapcar 'cadr lst_max) '<)) ) )
(mapcar '/ (mapcar '+ ll ur) '(2.0 2.0 2.0)) )
(defun Change_Str (data pt str color)
(entmake (list (cons 0 "TEXT") (assoc 8 data) (cons 10 pt)
(cons 11 pt) (assoc 7 data) (assoc 40 data)
(cons 71 0) (cons 72 1) (cons 73 2)
(cons 1 str) (cons 62 color)
(if (assoc 6 data) (assoc 6 data) '(6 . "BYLAYER") )
(if (assoc 39 data) (assoc 39 data) '(39 . 0) )
(if (assoc 370 data) (assoc 370 data) '(370 . -1) ) )) )
(defun dxf (tag obj) (cdr (assoc tag obj)))
;main
(setq ss (ssadd))
(while (setq sel (entsel "\nChon cac Text can noi voi nhau: "))
(setq ent (car sel))
(if (= (cdr (assoc 0 (entget ent))) "TEXT")
(ssadd ent ss)) )
(if (> (sslength ss) 0)
(progn
(setq i -1
str ""
center (centerSS ss)
data (entget (ssname ss 0))
color (dxf 62 data))
(while (setq ent (ssname ss (setq i (1+ i))))
(setq edata (entget ent)
str (strcat str " " (dxf 1 edata)) )
(entdel ent) )
(Change_Str data center (substr str 2) color) )
(princ "\nKhong chon duoc Text !"))
(princ))

  • 1

#33 mokara30

mokara30

    biết zoom

  • Members
  • Pip
  • 14 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 31 October 2011 - 04:03 PM

Trước hết rất cảm ơn giabach vì phản hồi rất sớm, thực ra mình cần 1 cái lisp đơn giản như cái đầu tiên bạn đưa lên trong topic này thôi.
Mình diễn đạt như thế này cho dễ hiểu nhé:
- Thực ra trước giờ mình dùng lệnh "HT" của Speedcad V2.0 để nối 2 dtxet lại với nhau, (nghĩa là Dtext sau tự động nối vào đuôi Dtext trước và đương nhiên là có khoảng trắng ở giữa và vị trí của Dtext sau khi nối là vị trí của Text mình chọn đầu tiên). Nếu đã xài qua SpeedCad chắc cũng biết.
- Mình thấy Lisp đầu tiên của giabach chỉ cần chỉnh sửa thêm khoảng trắng ở giữa các text nối lại với nhau, và vị trí của text sau khi nối là text đầu tiên mình chọn là ok rồi. Chiều giờ mình cũng mày mò chỉnh sửa mà ko được như ý, chắc trình độ lisp của mình còn có hạn.
- Mong bác giabach chỉnh sửa lisp đầu tiên theo vài ý của mình, tại vì không hiểu sao Speedcad mình đang sử dụng lại không dùng được lệnh ''HT" nữa (mặc dù đã tháo ra và cài lại nhiều lần)
Cảm ơn bác giabach nhé.
  • 0

#34 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 31 October 2011 - 04:14 PM

Trước hết rất cảm ơn giabach vì phản hồi rất sớm, thực ra mình cần 1 cái lisp đơn giản như cái đầu tiên bạn đưa lên trong topic này thôi.
Mình diễn đạt như thế này cho dễ hiểu nhé:
- Thực ra trước giờ mình dùng lệnh "HT" của Speedcad V2.0 để nối 2 dtxet lại với nhau, (nghĩa là Dtext sau tự động nối vào đuôi Dtext trước và đương nhiên là có khoảng trắng ở giữa và vị trí của Dtext sau khi nối là vị trí của Text mình chọn đầu tiên). Nếu đã xài qua SpeedCad chắc cũng biết.
- Mình thấy Lisp đầu tiên của giabach chỉ cần chỉnh sửa thêm khoảng trắng ở giữa các text nối lại với nhau, và vị trí của text sau khi nối là text đầu tiên mình chọn là ok rồi. Chiều giờ mình cũng mày mò chỉnh sửa mà ko được như ý, chắc trình độ lisp của mình còn có hạn.
- Mong bác giabach chỉnh sửa lisp đầu tiên theo vài ý của mình, tại vì không hiểu sao Speedcad mình đang sử dụng lại không dùng được lệnh ''HT" nữa (mặc dù đã tháo ra và cài lại nhiều lần)
Cảm ơn bác giabach nhé.

Tiếc nhỉ, tui chả biết Speedcad là cái gì ?
Phải đơn giản như thế này ko?

(defun c:at2t (/ data edata ent i sel ss str);All Text to Text
(defun dxf (tag obj) (cdr (assoc tag obj)))
(setq ss (ssadd))
(while (setq sel (entsel "\nChon cac Text can noi voi nhau: "))
(setq ent (car sel))
(if (= (cdr (assoc 0 (entget ent))) "TEXT")
(ssadd ent ss)) )
(if (> (sslength ss) 0)
(progn
(setq i 0
data (entget (ssname ss 0))
str (dxf 1 data))
(while (setq ent (ssname ss (setq i (1+ i))))
(setq edata (entget ent)
str (strcat str " " (dxf 1 edata)) )
(entdel ent) )
(entmod (subst (cons 1 str) (assoc 1 data) data)) )
(princ "\nKhong chon duoc Text !"))
(princ))

  • 1

#35 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 31 October 2011 - 04:27 PM

Có lẽ phải thêm 1 cái kiểm tra có / không có dxf 62 nữa bác ạ ^^ (# 32)
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#36 mokara30

mokara30

    biết zoom

  • Members
  • Pip
  • 14 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 31 October 2011 - 04:45 PM

Cảm ơn pác giabach, mình chỉ cần có vậy thôi, hì.

- Nhưng khi chọn các dtext mình có làm hiển thị các text đã chọn không, y chang như đối tượng được chọn trong cad đó. (khi chọn objects thì objects đó được hightligh (nghĩa là có nét đứt đứt) thể hiện object đó được chọn,) như vậy sẽ dễ kiểm soát hơn.

- Dù sao cũng cảm ơn pac nhiều nhé, ít nhất cái này cũng dùng được cho việc của mình rồi.
  • 0

#37 mokara30

mokara30

    biết zoom

  • Members
  • Pip
  • 14 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 01 November 2011 - 04:56 PM

Hôm nay chắc pác giabach bận rồi, mình có nhờ pac làm hiển thị các text được chọn nhằm dễ kiểm soát hơn, pác có thể giúp mình thêm lần này nữa được không.
Cảm ơn pac'!
  • 0

#38 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 01 November 2011 - 07:25 PM

Hôm nay chắc pác giabach bận rồi, mình có nhờ pac làm hiển thị các text được chọn nhằm dễ kiểm soát hơn, pác có thể giúp mình thêm lần này nữa được không.
Cảm ơn pac'!

Hề hề hề,
Bạn hãy thử thay đoạn code sau:
(setq ss (ssadd)) (while (setq sel (entsel "\nChon cac Text can noi voi nhau: ")) (setq ent (car sel)) (if (= (cdr (assoc 0 (entget ent))) "TEXT") (ssadd ent ss)) )
bằng đoạn code này xem sao nhé
(prompt "\n Hay chon cac text bang cach pick text theo thu tu can noi")
(setq ss (ssget (list (cons 0 "text"))))

Thực ra vấn đề của bạn là do bác Gia bach sử dụng hàm entsel để bạn pick đối tượng mà hàm này mỗi lần chỉ chọn một đối tượng duy nhất nên nó không highlight mà thôi.
Chúc bạn vui.
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#39 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 01 November 2011 - 08:39 PM

Hoặc là bạn chuyển phương thức chọn thành ssget như của bác Bình, hoặc nếu muốn giữ code bác gia_bach thì thêm redraw vào :

(defun c:at2t (/ data edata ent i sel ss str);All Text to Text
(defun dxf (tag obj) (cdr (assoc tag obj)))
(setq ss (ssadd))
(while (setq sel (entsel "\nChon cac Text can noi voi nhau: "))
(setq ent (car sel))
(if (= (dxf 0 (entget ent)) "TEXT")
(progn
(ssadd ent ss)
(redraw ent 3)
)
))
(if (> (sslength ss) 0)
(progn
(setq i 0
data (entget (ssname ss 0))
str (dxf 1 data))
(while (setq ent (ssname ss (setq i (1+ i))))
(setq edata (entget ent)
str (strcat str " " (dxf 1 edata)) )
(entdel ent) )
(entmod (subst (cons 1 str) (assoc 1 data) data)) )
(princ "\nKhong chon duoc Text !"))
(princ))

  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#40 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 01 November 2011 - 09:40 PM

CV hôm nay sao kỳ vậy trời. Vào trang nào con chuột cũng đơ hết, sao đây hè?
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.