Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
interwar1283

Đánh số thứ tự tăng dần

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

Lệnh CO.

 

Command: co

 

Copy Inteligent...

 

Select objects:

bac ơi cho mình hỏi aploap líp là gì vạy tại mình mơpí nên diễn đàn nên không biết là gì bác chỉ giúp em 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

Chương trình rất hay, nhưng chỉ thay được số cuối cùng thì phải. Giả sử bây giờ em có chuỗi A1/B1, em muốn tạo ra các chuỗi là A2/B1, A3/B1, A4/B1,...thì có làm được không ạ.

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

Thank bác nha. minh đang cần cái này. Mình xin góp ý tí. Bác có thể sữa thêm đằng trước số tư nhiên có số 0. VD như: O1, 02, 03.... vì khi đánh tên BV thường theo iso là vậy. thank

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

Thank bác nha. minh đang cần cái này. Mình xin góp ý tí. Bác có thể sữa thêm đằng trước số tư nhiên có số 0. VD như: O1, 02, 03.... vì khi đánh tên BV thường theo iso là vậy. thank

Khi thank bạn nên ấn vote cho người cần thanks :)

Phần thêm số 0 là yêu cầu đặc biệt, khác với lệnh CO nói chung. Bạn có thể xem ở đây :

Đánh số hiệu bản vẽ

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 cũng có sẵn 1 lips Danh STT minh up lên cho anh em dùng thử. nó cho phép chọn chiều cao chữ. lips này mình sưu tầm dc. Mình ko biết viết lips đang học hỏi.hihi. Mình ko biết up trong nay thế nào. mình up lên diễn đàn xem sao nha.

http://www.cadviet.com/upfiles/3/danh_stt_stt.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

Lệnh copy thông minh:

Command: co

mình dùng thấy thú vị hơn lệnh Tcount, tuy nhiên mỗi cái có điểm hay riêng.

;;;Edit by Interwar1283;*********************************************************************(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	100)	(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:co ( / 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 \"DG\" to start");Note: bien toan cuc: textxl vitrilech
Similar topics from web:

Đánh thứ tự số trang tăng dần cho nhiều tài liệu khác nhau?

kết quả chung cuộc gương mặt tuổi teen nổi bật trên fb ...

ê có violymoic lop 5 vong 15 ko

Thắc mắc và góp ý

Có 30 triệu nên cưới vợ hay xây nhà trước?

Holocaust – Wikipedia tiếng Việt

Tăng Thanh Hà: Không quan tâm khi người ta bàn về con gái tuổi ...

7 dấu hiệu nhiễm HIV ban đầu ở nam giới

3 CỘT

Những tín hiệu \chứng tỏ\ bạn bầu bí (2)

TIN HỌC 11(các bạn lớp 11 vào đây để xem có BT mình định hỏi ...

[Hướng dẫn] Viết một số dạng hiệu ứng Karaoke trong Aegisub

Đề Kiểm tra chương II số học 6

Một số biện pháp chỉ đạo, thực MNHH

Cẩm nang Android dành cho người mới sử dụng

bác ơi, em có down cái lisp của bác về, nhưng mà dùng thấy sao ấy, ví dụ như e có cái text a1 chẳng hạn, e muốn cho nó thành a2 a3... mà k được, nó toàn thành a1`, a1~,... bác chỉ dẫn em với

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

Theo mình đây là giải pháp hoàn hảo nhất , copy link của một bác trên diễn đàn thử ok ngay http://www.cadviet.com/forum/topic/83-lisp-danh-chu-theo-thu-tu/

 

(defun ketthuc ()
(setvar "cmdecho" luuecho)
(setq *error* luu
luu nil
luuecho nil
);setq
(princ "\nThe la het")
(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 100) (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:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
; Khoi dau cua chuong trinh
(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)) 
)
)
);
(if (/= textxl nil) 
(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
);if
(ketthuc)
);defun

;Note: bien toan cuc: textxl vitrilech


Đây cũng là một lisp dùng cho việc đánh số thứ tự bậc thang hoặc trục bao gồm cả số lẫn chữ nhưng dài dòng hơn lisp của Nguyen Hoanh . Tuy nhiên nếu dùng thì lisp này lại thuận tiện hơn ở 2 điểm:
- thứ nhất: lisp này dùng cho cả A,B,C sử dụng để đánh trục bản vẽ 
- thứ hai: chỉ cần đánh lệnh CT rồi chọn đối tượng chuyển đến các chỗ mình cần . Chữ hoặc số bất kỳ sẽ tự động nhảy lên . Ví dụ: khi có một số giá trị là 5, gõ CT bắt 5 chuyển đến các vị trí khác, số thứ tự tự động sẽ là 6,7,8,.... tương tự với khi có một chữ là E, gõ CT bắt E chuyển đến các vị trí khác, chữ thứ tự tự động sẽ là F,G,H,..... Dùng thế này mình đỡ tốn được công đoạn pick lại số đã copy, hỏi số bắt đầu mà gói gọn hết lại thành duy nhất một công đoạn copy thôi . Các bạn thử dùng xem sao .

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

khi mình load co.lsp rồi thì khi co cái nào cũng tăng lên hết. vậy cách nào cho nó hết tăng lên bạn. ví dụ mình co đường Hùng Vương thì nó sẽ thành Hùng Vươ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

mấy anh cho em hỏi sao em ấn co chọn số 1 rùi copy sang vị trí mới thì nó lại hiện 1~ ,  1€  tùm lum z.em mới dùng cad mong mấy anh chỉ giúp em dùng cad 2013

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ệnh copy thông minh:

Command: co

mình dùng thấy thú vị hơn lệnh Tcount, tuy nhiên mỗi cái có điểm hay riêng.

 

;;;Edit by Interwar1283
;*********************************************************************
(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 100) (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:co ( / 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 \"DG\" to start")
;Note: bien toan cuc: textxl vitrilech
Đúng là copy thông minh. thank for share

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


×