Đến nội dung


Hình ảnh

Đánh số thứ tự bằng lệnh Tcount


  • Please log in to reply
121 replies to this topic

#41 lethanhhao_eng

lethanhhao_eng

    biết zoom

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

Đã gửi 30 September 2008 - 10:14 AM

Vậy muốn đánh theo tứ tự A, B, C, D thì sao nhỉ, các bạn có biết chỉ giúp

Em có cách này cũng đánh số thứ tự theo chuỗi:1 2 3 4 5,or 5 4 3 2 1
Express\textAutomatic text Numbering\chọn đối tượng\select order\chọn text bắt đầu và bước nhảy.
Tuỳ theo thứ tự tăng hay giảm theo cách chọn khung cửa sổ.Ok
  • 0

#42 lethanhhao_eng

lethanhhao_eng

    biết zoom

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

Đã gửi 30 September 2008 - 10:20 AM

Có mẹo này bạn có thể làm được:

- Đầu tiên, bạn tạo 1 text có nội dung là cadviet.

- Bạn copy đối tượng này thành nhiều (bạn muốn bao nhiêu chữ thì copy bấy nhiêu đối tượng).

- Bạn dùng lệnh TCount và chọn các đối tượng này:
Command: TCOUNT
Select objects: Specify opposite corner: 5 found
Select objects:
Sort selected objects by [X/Y/Select-order] <Select-order>:
Specify starting number and increment (Start,increment) <48,1>: 65,1
Placement of numbers in text [Overwrite/Prefix/Suffix/Find&replace..] <
Suffix>: S
5 objects modified.

Bây giờ trên màn hình sẽ là các chuỗi 'cadviet 65', 'cadviet 66', 'cadviet 67',...

- Bạn dùng lệnh FIND rồi thay toàn bộ các chuỗi 'cadviet ' (nhớ là có dấu cách ở cuối cùng) thành '%%'.

Trên màn hình bây giờ là thứ bạn cần.

bác Hoành chỉ giúp cho anh em cách đánh dãy ký tự:A,B,C,D.Cái này dùng để đánh thứ tự trục thì tuyệt.Thanks bác
  • 0

#43 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 30 September 2008 - 11:47 AM

bác Hoành chỉ giúp cho anh em cách đánh dãy ký tự:A,B,C,D.Cái này dùng để đánh thứ tự trục thì tuyệt.Thanks bác

Tôi buồn quá, bạn không đọc bài sao?

Tôi không hiểu là do văn hoá hay do tính cách nhưng nhiều người trong chúng ta chẳng chịu đọc bài gì cả, muốn gì là họ cứ hỏi luôn cho nhanh. Bất kể vấn đề họ hỏi vừa được đề cập xong.
  • 4

#44 huyndaivn

huyndaivn

    biết pan

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

Đã gửi 07 December 2008 - 12:38 AM

Tôi buồn quá, bạn không đọc bài sao?

Tôi không hiểu là do văn hoá hay do tính cách nhưng nhiều người trong chúng ta chẳng chịu đọc bài gì cả, muốn gì là họ cứ hỏi luôn cho nhanh. Bất kể vấn đề họ hỏi vừa được đề cập xong.


Cảm ơn anh lệnh hay quá, he he. Đang phải vẽ bản vẽ thi công 21 bước và bản vẽ thép 17 bước. Có cái để áp dụng rồi.
  • 0

#45 hhhhgggg

hhhhgggg

    biết dimedit

  • Members
  • PipPipPipPipPip
  • 393 Bài viết
Điểm đánh giá: 30 (tàm tạm)

Đã gửi 07 December 2008 - 08:18 AM

Cảm ơn anh lệnh hay quá, he he. Đang phải vẽ bản vẽ thi công 21 bước và bản vẽ thép 17 bước. Có cái để áp dụng rồi.

Hay thật, cái lệnh Tcont này hay hơn mấy cái lisp đánh số thứ tự, cảm ơn các bác nhé !
  • 0
Hoàng Giang

#46 qman

qman

    biết zoom

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

Đã gửi 11 December 2008 - 10:38 AM

Tớ là thành viên mới toanh, chưa post bài lần nào, các bạn cho tớ hỏi một chút: Làm thế nào để đánh STT tự động dãy 1S, 2S, 3S... nhanh nhất nhỉ. Mình thường xuyên phải làm công việc đánh STT này nhưng mỗi lần làm lại copy rồi sửa thủ công từng text một thấy mất thời gian quá. Ai biết thì chỉ cho tớ với nhé. Cảm ơn nhiều.

Bạn thử dùng lệnh "tcout" xem, giải quyết được yêu cầu của bạn đấy. Chúc thành công.
  • 0

#47 qman

qman

    biết zoom

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

Đã gửi 11 December 2008 - 10:39 AM

Bạn thử dùng lệnh "tcout" xem, giải quyết được yêu cầu của bạn đấy. Chúc thành công.


nhầm, lệnh "tcount".
  • 0

#48 mrboonr

mrboonr

    Chưa sử dụng CAD

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

Đã gửi 14 December 2008 - 11:09 AM

hi..thank mọi người nha! những trao đổi đã giúp mình học thêm được 1 lệnh mới thật bổ ích :cheers:
  • 0

#49 MoYeu

MoYeu

    biết pan

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

Đã gửi 24 December 2008 - 12:19 PM

Mình có 1 cách thế này nhé
bạn cứ việc đánh ssố thứ ttụ bình thuờng
khi xong bạn dùng lệnh sss để điền chữ S vào cuối, chọn tất cả các text cùng 1 lúc, ok
chúc thành công!!!
<a href="http://www.cadviet.c...les/MHPro4.lsp" target="_blank"><a href="http://www.cadviet.c...les/MHPro4.lsp" target="_blank"><a href="http://www.cadviet.c...les/MHPro4.lsp" target="_blank">http://www.cadviet.com/upfiles/MHPro4.lsp</a></a></a>


Bác nào cho em hỏi tý, cái Lisp này mà muốn:
Giá trị đuợc chọn <12 thì thêm là "abc" ở đầu
Còn Nếu giá trị đuợc chọn mà >12 thì thêm xyz ở đầu
Có cao thủ nào giúp em với!
  • 0

#50 MoYeu

MoYeu

    biết pan

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

Đã gửi 25 December 2008 - 01:17 PM

Bác nào cho em hỏi tý, cái Lisp này mà muốn:
Giá trị đuợc chọn <12 thì thêm là "abc" ở đầu
Còn Nếu giá trị đuợc chọn mà >12 thì thêm xyz ở đầu
Có cao thủ nào giúp em với!

Bác nào giúp muội tý! Cần gấp quá!
  • 0

#51 MoYeu

MoYeu

    biết pan

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

Đã gửi 26 December 2008 - 11:12 AM

Bác nào cho em hỏi tý, cái Lisp này mà muốn:
Giá trị đuợc chọn <12 thì thêm là "abc" ở đầu
Còn Nếu giá trị đuợc chọn mà >12 thì thêm xyz ở đầu
Có cao thủ nào giúp em với!


Không bác nào ra tay cứu giúp thảo muội tý à
Cũng không có ai nói j....huhuu.... :cheers:
  • 0

#52 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 26 December 2008 - 03:59 PM

Không bác nào ra tay cứu giúp thảo muội tý à
Cũng không có ai nói j....huhuu.... :cheers:

1. Vì yêu cầu của bạn hơi... kỳ cục! Bạn có thể nói rõ, bạn cần cái lisp kiểu như vậy để làm gì không? Người lập trình chỉ có hứng thú khi biết rằng, lisp họ viết ra có thể giúp ích được cho nhiều người chứ không chỉ đáp ứng một yêu cầu đặc biệt của một người nào đó.
2. Nếu giá trị = 12 thì sao?
3. Dù sao thì yêu cầu của bạn cũng thuộc dạng đơn giản, bạn thử lisp này xem. Giá trị = 12 cũng thêm xyz luôn. Tên lệnh ABC:


(defun C:ABC( / ss e d txt )
(setq ss (ssget '((0 . "TEXT"))))
(while (setq e (ssname ss 0))
(setq
d (entget e)
txt (cdr (assoc 1 d))
)
(if (< (atof txt) 12) (setq txt (strcat "abc" txt)) (setq txt (strcat "xyz" txt)))
(setq d (subst (cons 1 txt) (assoc 1 d) d))
(entmod d)
(ssdel e ss)
)
(princ)
)

  • 0

#53 MANHHUNGXDA

MANHHUNGXDA

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 926 Bài viết
Điểm đánh giá: 458 (tốt)

Đã gửi 26 December 2008 - 07:26 PM

1. Vì yêu cầu của bạn hơi... kỳ cục! Bạn có thể nói rõ, bạn cần cái lisp kiểu như vậy để làm gì không? Người lập trình chỉ có hứng thú khi biết rằng, lisp họ viết ra có thể giúp ích được cho nhiều người chứ không chỉ đáp ứng một yêu cầu đặc biệt của một người nào đó.
2. Nếu giá trị = 12 thì sao?
3. Dù sao thì yêu cầu của bạn cũng thuộc dạng đơn giản, bạn thử lisp này xem. Giá trị = 12 cũng thêm xyz luôn. Tên lệnh ABC:


(defun C:ABC( / ss e d txt )
(setq ss (ssget '((0 . "TEXT")))))


Viết lisp theo "phong cách SSG!"
Thật đơn giản!
  • 1
Hãy ước cho trọn 1 ước mơ!

#54 pccc

pccc

    biết lệnh adcenter

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

Đã gửi 26 December 2008 - 10:14 PM

Viết lisp theo "phong cách SSG!"
Thật đơn giản!


đúng là thật đơn giản
nhưng với iem thấy khó lắm bác HÙNG ạ

theo em
các bác trên diễn đàn mở lớp học viết lips
từ ABC... em xin tình nguyện làm chân trực nhật lớp
  • 0
Vừa tàn mùa xuân rồi tàn mùa hạ
Một ngày đầu thu ..................................
gặp Mũn........................

#55 The-moon

The-moon

    biết vẽ polygon

  • Members
  • PipPip
  • 73 Bài viết
Điểm đánh giá: 36 (tàm tạm)

Đã gửi 27 December 2008 - 10:44 AM

Bạn thử dùng Lisp này đi: Lệnh tắt là CCC, Chúc thành công...

;;;Viet boi Nguyen Van Quy
;*********************************************************************
(defun ketthuc ()
(setvar "cmdecho" luuecho)
(setq *error* luu
luu nil
luuecho nil
);setq
(princ)
)
;*********************************************************************
(defun modau ()
(setq luu *error
luuecho (getvar "cmdecho")
*error (ketthuc)
)
)
;*********************************************************************
(defun xulytext (text / kytu ma sokt luusokt lui )
(setq kytu (substr text (strlen text))
ma (ascii kytu)
sokt (read kytu)
lui 1
)
(if (numberp sokt)
(progn
(setq luusokt (1+ sokt))
(if (and (numberp sokt)
(> (strlen text) 1)
)
(progn
(setq kytu (substr text (1- (strlen text)))
sokt (read kytu)
)
(if (numberp sokt)
(setq luusokt (1+ sokt)
lui 2

)
)
);progn
)
(if (= luusokt 200) (setq luusokt 0))
(setq kytu (rtos luusokt 2 0)

text (strcat (substr text 1 (- (strlen text) lui)) kytu)
)
);progn
(if (or (= kytu "z")
(= kytu "Z")
)
(setq text (strcat text "0")
textxl "0"
)
(setq ma (1+ ma)
text (strcat (substr text 1 (1- (strlen text))) (chr ma))
)
);if
);if
)
;*********************************************************************
(defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
;Neu doi tuong la text thi tiep tuc
(setq doituong (entget tendoituong)
kieu (cdr (assoc 0 doituong))
canle (cdr (assoc 72 doituong))
)
(if (or (= kieu "TEXT")
(= kieu "MTEXT")
)
(progn
(setq textxl (xulytext textxl)
text (cons 1 textxl)
vitri10 (cdr (assoc 10 doituong))
vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
vitri10 (cons 10 vitri10)
vitri11 (cdr (assoc 11 doituong))
vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))
vitri11 (cons 11 vitri11)
dem 0
dsach nil
)
(foreach tam doituong
(cond
((= (car tam) 1) (setq dsach (append dsach (list text))))
((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
((setq dsach (append dsach (list tam))))
)
)
(entmake dsach)
);progn
);if
);
;*********************************************************************
;sao doi tuong cu sang vi tri moi

(defun copy_dt (tendoituong )
(command "copy" tendoituong "" goc toi )
);defun

;*********************************************************************
(defun c:CCC ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
; Khoi dau cua chuong trinh
(princ "\nCopy Inteligent...\n")
(setq luuecho (getvar "cmdecho")
luu *error*
*error* ketthuc
cumdt (ssget)
dodai (sslength cumdt)
goc (getpoint "\nSelect base point:")
thoat nil
dem 0
textxl nil
);
(setvar "cmdecho" 0)
; Loc ra duoc ong text de xu ly
(while (and (= thoat nil)
(< dem dodai)
)
(setq ten (ssname cumdt dem)
dem (1+ dem)
doituong (entget ten)
kieu (cdr (assoc 0 doituong))
)

(if (or (= kieu "TEXT")
(= kieu "MTEXT")
)
(setq thoat T
textxl (cdr (assoc 1 doituong))
)
)
);
(while T
(setq toi (getpoint "\nSelect next point: " goc)
vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
dem 0
)
(while (< dem dodai)
(setq ten (ssname cumdt dem)
dem (1+ dem)
doituong (entget ten)
kieu (cdr (assoc 0 doituong))
)

(if (or (= kieu "TEXT")
(= kieu "MTEXT")
)
(doitext ten)
(copy_dt ten)

);if
)
);while
(ketthuc)
);defun
(princ "Type \"XXX\" to start")
;Note: bien toan cuc: textxl vitrilech

  • 0

#56 thanghaita

thanghaita

    biết vẽ ellipse

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

Đã gửi 28 December 2008 - 11:36 PM

Nhiều khi chúng ta cần phải sửa từng text một để điền các số theo thứ tự tăng dần. Chẳng hạn phải điền chuỗi D1, D2, D3, D4,...D1000 theo thứ tự tăng dần của trục Y. nếu sửa bằng tay thì rất lâu. Lệnh Tcount của Express Tool cho phép chúng ta làm điều này.

Command: tcount
Chương trình sẽ cho bạn chọn đối tượng
Select objects: Specify opposite corner: 5 found
Select objects:

Chương trình hỏi bạn sắp xếp các đối tượng theo chiều tăng trục x, trục y hay theo thứ tự lúc bạn chọn các đối tượng
Sort selected objects by [X/Y/Select-order] <Y>:

Chương trình hỏi bạn số đầu tiên mà bạn đánh, số gia mà bạn cho vào. Ví dụ 2,-1 sẽ đánh các số: 2, 1, 0, -1, -2, ...
Specify starting number and increment (Start,increment) <2,-1>:

Chương trình hỏi bạn cách đánh số vào text: Overwrite - ghi đè luôn vào text, Prefix - viết thêm vào phía trước, Suffix - viết thêm vào phía sau, Find&replace - Thay những cụm từ được chỉ định bằng các text số này.
Placement of numbers in text [Overwrite/Prefix/Suffix/Find&replace..] <
Find&replace>:

Nếu bạn chọn Find&replace, máy hỏi thêm cụ từ mà bạn muốn chỉ định.
Enter search string <kts>:

Và cuối cùng chương trình thông báo có bao nhiêu đối tượng text đã được sửa
5 objects modified.

Em thực hiện nhưnng ko được nó vẫn bị cách, nhờ bác chỉ rõ thêm cho em. Muốn đánh theo thứ tự a,b,c... thì làm thế nào?
  • 0

#57 tiger99

tiger99

    biết vẽ line

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

Đã gửi 31 December 2008 - 12:39 PM

Mình dùng cad 2007 sao cai không thấy cái expess tool nhỉ?
đánh vào command lệnh ctount thi ko thấy gì hết?
ai giúp mình với
  • 0

#58 hoacotu

hoacotu

    biết lệnh array

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

Đã gửi 12 January 2009 - 07:26 PM

Có mẹo này bạn có thể làm được:

- Đầu tiên, bạn tạo 1 text có nội dung là cadviet.

- Bạn copy đối tượng này thành nhiều (bạn muốn bao nhiêu chữ thì copy bấy nhiêu đối tượng).

- Bạn dùng lệnh TCount và chọn các đối tượng này:
Command: TCOUNT
Select objects: Specify opposite corner: 5 found
Select objects:
Sort selected objects by [X/Y/Select-order] <Select-order>:
Specify starting number and increment (Start,increment) <48,1>: 65,1
Placement of numbers in text [Overwrite/Prefix/Suffix/Find&replace..] <
Suffix>: S
5 objects modified.

Bây giờ trên màn hình sẽ là các chuỗi 'cadviet 65', 'cadviet 66', 'cadviet 67',...

- Bạn dùng lệnh FIND rồi thay toàn bộ các chuỗi 'cadviet ' (nhớ là có dấu cách ở cuối cùng) thành '%%'.

Trên màn hình bây giờ là thứ bạn cần.



Mình cảm ơn bạn nhiều!
Mình thấy nhiều bạn đã không làm được khi đến chỗ dùng lệnh Find để thay thế Text.
Mình cũng nằm trong số đó. Bạn đừng bực mình nhé!
Mình đã đọc kỹ, đã làm nhiều lần nhưng vẫn không có cách nào để đánh A, B, C, ....bằng cách dùng lệnh Tcount.
Vậy mình thay mặt các bạn vẫn chưa làm được lệnh này mong muốn bạn có thể hướng dẫn lại đoạn thay Text được không???
Mình và các bạn mong chờ sự giúp đỡ và lòng rộng lượng của bạn!

-Hoa cô tử -


  • 0

- Hoa cô tử -

[/color]

#59 thu.nivl

thu.nivl

    biết zoom

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

Đã gửi 12 January 2009 - 09:51 PM

Mình cảm ơn bạn nhiều!
Mình thấy nhiều bạn đã không làm được khi đến chỗ dùng lệnh Find để thay thế Text.
Mình cũng nằm trong số đó. Bạn đừng bực mình nhé!
Mình đã đọc kỹ, đã làm nhiều lần nhưng vẫn không có cách nào để đánh A, B, C, ....bằng cách dùng lệnh Tcount.
Vậy mình thay mặt các bạn vẫn chưa làm được lệnh này mong muốn bạn có thể hướng dẫn lại đoạn thay Text được không???
Mình và các bạn mong chờ sự giúp đỡ và lòng rộng lượng của bạn!

-Hoa cô tử -

Mình cũng bó tay chổ này luôn
  • 0

#60 angel-Devil

angel-Devil

    biết pan

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

Đã gửi 21 February 2009 - 12:32 AM

[quote name='thu.nivl' date='Jan 12 2009, 21:51' post='48057']
Mình cũng bó tay chổ này luôn
[/quote
Thật ra cũng đơn giản thôi. Bạn cần biết rằng kí tự %% là dạng kí tự đặc biệt. Nếu viết %%c thì là biểu tượng chữ phi, %%u là gạch dưới. Cũng tương tự như vậy %%65 là mã kí tự của chữ a, %%66=b, %%67=c.
Vậy thủ thuật ở đây như sau.
Tạo một chuỗi kí tự bất kì ví dụ cadviet
Dùng Tcount đánh số hiệu cho nó với lựa chọn là hậu tố (suffix) kết quả các bạn có được là theo bác Hoàng chỉ dạy là cadviet 66, cadviet 67 ... Nhớ lưu ý rằng có kí tự cách giữa chữ cadviet và số.
Dùng find trong edit để thay thế 'cadviet ' nhớ là từ cadviet+1 phím cách thì mới đúng và thay thế bằng từ '%%' khi đó chuỗi kí tự cadviet 66,cadviet 67 sẽ thành %%66,%%67... và nó sẽ tự động chuyển thành a,b,c thôi
  • 1