mangbachkhoa.net  

Trở lại   mangbachkhoa.net > CHUYÊN ĐỀ KHÁC > Đồ họa vẽ kỹ thuật AUTOCAD -SAP

Trả lời
 
Công cụ bài viết Kiểu hiển thị
  #1  
Cũ 15-05-2010, 22:24
masgon masgon đang ẩn
Junior Member
 
Tham gia ngày: May 2010
Bài gửi: 14
Thanks: 0
Thanked 1 Time in 1 Post
Mặc định Đánh số thứ tự trong CAD

Ví dụ bạn muốn đánh số thứ tự (cầu thang, hay trục, hay số thứ tự một bảng nào đấy...). Bạn đang có số giá trị bất kỳ (giả sử là số 2) chẳng hạn, bạn aploap lisp đó, rồi đánh lệnh CO, chọn số đầu tiên muốn copy (số 2), thì bạn copy sang vị trí mới sẽ được số 3, cứ mỗi lần pick sang vị trí tiếp theo là tăng 1 đơn vị. Với các text là chữ cái thì tăng theo thứ tự trong bảng chữ cái (A, B, 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.

Bạn Download file: co.lsp tại đây
file: co.lsp
;************************************************* ********************(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

Chúc các bạn thành công

Sưu tầm Cadviet.com

Lần sửa cuối bởi masgon; 15-05-2010 lúc 22:28
Trả lời với trích dẫn
Trả lời

Công cụ bài viết
Kiểu hiển thị

Quyền viết bài
Bạn không thể gửi chủ đề mới
Bạn không thể gửi trả lời
Bạn không thể gửi file đính kèm
Bạn không thể sửa bài viết của mình

BB code đang Mở
Mặt cười đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT +7. Hiện tại là 20:33

BACH KHOA NETWORK TRAINING CENTER,  Add: 118 Tran Quoc Thao Str. HCMC
Tel: 08. 39 918 857 -:- Fax: 08. 38 945 698 ,  Email: bknet@mangbachkhoa.net

BKNET BINH DUONG, Add: 591 BinhDuong Avenue - HiepThanh Ward - TDM Town
Tel: 0650. 3 878 132, Email: bknet@mangbachkhoa.net
BACH KHOA NETWORK TECHNOLOGY JOINT STOCK COMPANY
Office: 74B Quang Trung St. - Go Vap Dist. - HCMC
Tel: 08. 38 945 698 -:- Fax: 08. 38 945 698
Email: bknet@mangbachkhoa.net
Website: www.bknet.com.vn - www.mangbachkhoa.net

Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd. mangbachkhoa.net @2009