Đến nội dung


Hình ảnh

[Hỏi] Xóa text rỗng (không có nội dung)


  • Please log in to reply
20 replies to this topic

#1 Kỹ sư

Kỹ sư

    biết vẽ arc

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

Đã gửi 17 November 2012 - 11:24 PM

Các có cách nào để xóa text rỗng, k0 có nội dung k0 ạ, chỉ em với.

Em thấy CAD 2012 trong lệnh purge, có chức năng xóa tất cả các text rỗng trong bản vẽ mà các phiên bản trước đó k0 có.
em đang làm mấy bản vẽ mà trong đó, có một vài text rỗng trùng với text có giá trị, mà Cad em đang dùng trên công ty là CAD 2004, công ty thì là cty nước ngoài, dùng phần mềm có bản quyền nên gần như k0 thể đề xuất nâng cấp cho em lên 2012 đc

Em xin cảm ơn ạ!
  • 0

Hình đã gửi


#2 Hoan1111

Hoan1111

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2587 Bài viết
Điểm đánh giá: 692 (tốt)

Đã gửi 17 November 2012 - 11:28 PM

Câu hỏi của bác Kỹ sư hơi khó hiểu, bác có thể minh họa bằng hình ảnh hoặc đính kèm thêm .dwg
  • 1

66 Câu Phật Học Cho Cuộc Sống : http://ngocchinh.com...-cho-cuoc-song/

Gió đưa cây cải về trời / Rau răm ở lại chịu lời đắng cay...

 

 


#3 Hantinhsaycad

Hantinhsaycad

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 1073 Bài viết
Điểm đánh giá: 376 (khá)

Đã gửi 18 November 2012 - 05:17 AM

1 .Mượn anh cad 2012 ở gần đó
2 .COPY tạo bản mới
  • 1

Đừng để một ai chẳng nhận được gì khi rời chỗ bạn, cho dù bạn biết rằng không bao giờ gặp lại.

Ngạn ngữ Pháp


#4 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 18 November 2012 - 06:44 AM

- Qselect hoặc lisp (đã có trên diễn đàn) đều sử dụng được bạn ạ
  • 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


#5 Hoan1111

Hoan1111

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2587 Bài viết
Điểm đánh giá: 692 (tốt)

Đã gửi 18 November 2012 - 08:55 AM

1 .Mượn anh cad 2012 ở gần đó
2 .COPY tạo bản mới

Em không hiểu text rỗng (không có nội dung) khác với text không rỗng ở chỗ nào, anh có thể minh họa bằng hình ảnh được không?
  • 1

66 Câu Phật Học Cho Cuộc Sống : http://ngocchinh.com...-cho-cuoc-song/

Gió đưa cây cải về trời / Rau răm ở lại chịu lời đắng cay...

 

 


#6 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4106 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 18 November 2012 - 09:08 AM

Bạn có thể dùng lệnh PU (purge) để xóa các đối tượng rỗng bằng cách check vào ô Empty Object. Đối tượng rỗng là đối tượng text toàn dấu cách hoặc line có chiều dài bằng 0.
  • 2

#7 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 643 Bài viết
Điểm đánh giá: 224 (khá)

Đã gửi 18 November 2012 - 06:10 PM

Các có cách nào để xóa text rỗng, k0 có nội dung k0 ạ, chỉ em với.

Em thấy CAD 2012 trong lệnh purge, có chức năng xóa tất cả các text rỗng trong bản vẽ mà các phiên bản trước đó k0 có.
em đang làm mấy bản vẽ mà trong đó, có một vài text rỗng trùng với text có giá trị, mà Cad em đang dùng trên công ty là CAD 2004, công ty thì là cty nước ngoài, dùng phần mềm có bản quyền nên gần như k0 thể đề xuất nâng cấp cho em lên 2012 đc

Em xin cảm ơn ạ!

Bạn có thể thử

(defun c:thu123(/ ss i)
(setq ss (ssget "x" (list (cons 0 "Text"))))
(setq i 0)
(while (< i (sslength ss))
(if (= "" (vl-string-trim " " (cdr(assoc 1 (entget(ssname ss i))))))
(command "ERASE" (ssname ss i) "")
nil
)
(setq i (1+ i))
)
)

  • 0

#8 Kỹ sư

Kỹ sư

    biết vẽ arc

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

Đã gửi 19 November 2012 - 09:19 PM

- Qselect hoặc lisp (đã có trên diễn đàn) đều sử dụng được bạn ạ

Bạn có thể dùng lệnh PU (purge) để xóa các đối tượng rỗng bằng cách check vào ô Empty Object. Đối tượng rỗng là đối tượng text toàn dấu cách hoặc line có chiều dài bằng 0.



Cũng không hẳn bác ạ, trong file em đính kèm ở bài này, có text không có nội dung j bác ạ
Tọa độ của nó là x=420.65, y=6.381.
Em dung tool Cad2file, xuất text ra file excel, thì có 1 text có tọa độ như trên và không có nội dung (em kiểm tra bằng hàm len() thì kết quả bằng 0)

Và em cũng thử dùng quickselect, filter để thử tìm nhưng CAD <2012 k0 thể tìm thấy text mà không có nội dung.

Bạn có thể thử


lisp


He he, thanks bác, cái này dùng ngon bác ạ!

Cảm ơn các bác ạ.

Đây là 1 file có text rỗng của em ạ:
http://www.cadviet.c...3384_rl1c11.dwg
  • 0

Hình đã gửi


#9 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 19 November 2012 - 09:34 PM


(sssetfirst nil (ssget "x" '((0 . "*Text") (1 . " ,"))))

  • 3

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


#10 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 643 Bài viết
Điểm đánh giá: 224 (khá)

Đã gửi 20 November 2012 - 11:39 AM


(sssetfirst nil (ssget "x" '((0 . "*Text") (1 . " ,"))))

Bác ketxu cho em hỏi ở dòng
'((0 . "*Text") (1 . " ,"))
Thì dấu phẩy phải chăng được hiểu giống như khi (ssget '( (0 . "Text,Mtext")))
Nếu như vậy thì tại sao lại chỉ cần " "(1 dấu cách) và ""(không có dấu cách) là đủ mà không cần vl-string-trim ạ
Hai là ở lisp của e, em dùng (command "erease" ..) để xóa nhưng mà cách này không hay bác gợi ý em (và cách dùng) của các cấu trúc tương đương với ạ (như kiểu: sẽ xóa đi 1 nhóm đối tượng chứ không xóa từng entname đối tượng)
  • 0

#11 LoveLisp

LoveLisp

    biết lệnh extend

  • Members
  • PipPipPip
  • 195 Bài viết
Điểm đánh giá: 20 (tàm tạm)

Đã gửi 20 November 2012 - 11:50 AM


(sssetfirst nil (ssget "x" '((0 . "*Text") (1 . " ,"))))

Lisp của Ketxu không có khả năng chọn những (M)Text có nhiều hơn 1 dấu cách!
  • 0

#12 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4106 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 20 November 2012 - 11:55 AM

Cần cải tiến một chút để lisp của Ketxu để xóa các đối tượng text rỗng (có thể có 0 hoặc n dấu cách):

Tên lệnh lisp là XR (Xóa Rỗng)
(defun c:xr()(command ".erase" (ssget "x" '((0 . "*TEXT")(1 . "~*[~ ]*"))) "")(princ))

  • 2

#13 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 20 November 2012 - 12:20 PM

Uả! Cái của Ket chọn được hết mà! Còn text 0 dấu cách là text viết như thế nào?
  • 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.


#14 LoveLisp

LoveLisp

    biết lệnh extend

  • Members
  • PipPipPip
  • 195 Bài viết
Điểm đánh giá: 20 (tàm tạm)

Đã gửi 20 November 2012 - 01:13 PM

Chuỗi "~*[~ ]*" khá phức tạp, bác Hoanh có thể diễn giải nó ra được không? (theo mình biết, dấu ~ đứng trước một chuỗi mang nghĩa phủ định).
  • 0

#15 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4106 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 20 November 2012 - 01:33 PM

Đúng là lisp của Ketxu chọn được cả không có dấu cách nào lẫn có nhiều dấu cách.

còn chuỗi "~*[~ ]*" có ý nghĩa gì thì phải lần lượt:
1. [~ ] nghĩa là chuỗi chỉ là 1 ký tự khác dấu trống
2. *[~ ]* nghĩa là chuỗi có tối thiểu 1 ký tự khác dấu trống
3. ~*[~ ]* nghĩa là ngược lại với điều 2. Có 2 khả năng xảy ra: chuỗi toàn dấu trống hoặc chuỗi không chứa gì.
  • 2

#16 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 20 November 2012 - 01:37 PM

chuỗi không chứa gì.

Bác Hoành có thể giải thích "chuỗi không có gì" là chuỗi thế nào? Cách viết? Tôi không hình dung ra bác ạ.
  • 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.


#17 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 643 Bài viết
Điểm đánh giá: 224 (khá)

Đã gửi 20 November 2012 - 04:09 PM

Bác Hoành có thể giải thích "chuỗi không có gì" là chuỗi thế nào? Cách viết? Tôi không hình dung ra bác ạ.

Nghĩa là chuỗi mà người dùng nhập lệnh DT để viết nhưng sau đó nhập một, hoặc một số dấu cách và kết thúc lệnh enter(không phải ESC) tại vị trí người dùng nhập vẫn xuất hiện đối tượng Text, nhưng do không có nội dung lên hông nhìn thấy (hông hiển thị), khi zoom,pan đôi khi xuất hiện bóng mờ khá khó chịu
Do Text không có nội dung nên khi quét (từ phải sang, hoặc từ trái sang) đều không quét được nhưng khi dùng lệnh Ctrl+A, hoặc QuickSelect, hoặc Filled thì sẽ tìm thấy các text này trong tập chọn
  • 0

#18 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 20 November 2012 - 04:19 PM

Theo bác Hoành thì có chuỗi 1->n dấu cách và có chuỗi 0 dấu cách. Tôi muốn hỏi làm sao để viết chuỗi 0 dấu cách mà bác Hoành gọi là "chuỗi không có gì".
Enter 2 lần hoặc Esc thì chắc cũng giống nhau thôi?
  • 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.


#19 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 20 November 2012 - 04:38 PM

@LoveLisp : chính xác ^^ Cái đó thì do phát hiện tự hồi xưa thôi. Lisp của bạn thay vì command cũng nên dùng mapcar 'entdel sẽ đẹp hơn
Trên chỉ là 1 ví dụ đơn giản ket post làm hàng, còn chuỗi rỗng thì có cả các khái niệm về ký tự đặc biệt, xuống dòng ...., xử lý k dễ thế được ^^

@quansla : Chuỗi k có j trông nó thế này ^^ : (vla-put-textstring (vlax-ename->vla-object (car(entsel))) ""), khác với chuỗi nhiều dấu spcae nhé
  • 2

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


#20 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4106 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 20 November 2012 - 04:51 PM

Theo bác Hoành thì có chuỗi 1->n dấu cách và có chuỗi 0 dấu cách. Tôi muốn hỏi làm sao để viết chuỗi 0 dấu cách mà bác Hoành gọi là "chuỗi không có gì".
Enter 2 lần hoặc Esc thì chắc cũng giống nhau thôi?

Chuỗi 0 dấu cách viết bằng cách:
- viết chữ bình thường.
- Chọn text vừa viết
- Nhấn Ctr+1
- Trong ô content, xóa hết đi.

Như vậy là có 1 đối tượng text nhưng giá trị là ""
  • 2