Đến nội dung


Hình ảnh

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


  • Please log in to reply
65 replies to this topic

#21 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 23 January 2008 - 02:25 PM

bác SSG dạo này đi đâu thế nhỉ.

Ssg vẫn quanh quẩn đây, đã xem yêu cầu của bạn nhưng bận quá chưa rờ tới được. Nói thật tình, thời gian ssg có thể dành cho CadViet không được nhiều lắm và biến động thất thường. Nếu các bạn thấy ssg "mất tích" trong khoảng thời gian khá dài thì có nghĩa là cơ quan của ssg đang vào một "chiến dịch" khẩn nào đó.
Yêu cầu của bạn đơn giản thôi, không có vấn đề gì. Mình định sẽ đưa vào mục tiện ích chung của dự án LandCadViet Utility:

http://www.cadviet.c...o...c=2691&st=0

Có vẻ công việc của bạn cũng có liên quan đến cái này. Bạn có thể tham gia đóng góp ý kiến cùng anh em cho thêm phần "xôm tụ"?
  • 0

#22 ngayve324

ngayve324

    biết lệnh xref

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

Đã gửi 23 January 2008 - 03:02 PM

Bác SSG ơi, bác có thể sửa thêm lệnh "OC" được không. Tức là có 1 điểm text nằm trong 1 hình tròn, mình muốn copy luôn cả hình tròn theo và text thì tăng dần.(cái này dùng để đánh trục)

hình như cái này ban cú vẽ vòng tròng rồi ghi text bình thường trong hình tròn, swr dụng lệnh CO trên cũng được mà
  • 0

#23 vtq

vtq

    biết zoom

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

Đã gửi 16 March 2008 - 02:11 PM

mình chả hiểu cách chạy các code này như thế nào cả.mong cả nhà chỉ dùm!!!
  • 0

#24 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 16 March 2008 - 03:31 PM

mình chả hiểu cách chạy các code này như thế nào cả.mong cả nhà chỉ dùm!!!

Bạn xem ở đây: http://www.cadviet.c...howtip.php?t=14
  • 0

#25 meohoang

meohoang

    biết lệnh adcenter

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

Đã gửi 16 March 2008 - 03:44 PM

Bạn xem ở đây: http://www.cadviet.com/sub/tips/showtip.php?t=14

Anh Hoành xin làm ơn gởi cho file acad.lin hay acadío.lin có linetype ký hiệu cỏ , cây , lá...
trước đây tôi có down trên 4rum rồi nhưng máy bị hỏng mất file này . Mấy ngày nay tìm đường link của Duy788 đều die cả
Mong giúp mình tí, đang rất cần. Cảm ơn trước!
  • 0

#26 ngoquantoan

ngoquantoan

    Chưa sử dụng CAD

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

Đã gửi 22 March 2008 - 06:16 PM

Lệnh CO.

Command: co

Copy Inteligent...

Select objects:

Bác ơi cho em hỏi : em đánh lệnh CO mà sao nó cũng giống như lệnh copy th6ng thường trong cad àh (command:CO -->select objects <_< thiếu dòng chữ copy inteligent ) . Bác giúp em với ! em mới biết sử dụng lisp àh !
  • 0

#27 thuphong

thuphong

    biết vẽ circle

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

Đã gửi 22 March 2008 - 06:39 PM

Bác ơi cho em hỏi : em đánh lệnh CO mà sao nó cũng giống như lệnh copy th6ng thường trong cad àh (command:CO -->select objects <_< thiếu dòng chữ copy inteligent ) . Bác giúp em với ! em mới biết sử dụng lisp àh !

Nếu vậy, bạn có thể dùng 1 trong 2 cách sau để chạy lệnh:
1/ Vào menu Express -> Tools -> Command Alias Editor..; sửa phím tắt CO được gán cho copy thông thường bằng 1 phím tắt nào đó bạn thích (Các phím tắt bạn qui định nằm trong tập tin acad.pgp)
2/ Trong đoạn code của Lisp trên bạn thay từ CO bằng 1 từ nào đó. Sau đó load lên chạy lại lệnh
  • 0

#28 quocdung_acad

quocdung_acad

    biết zoom

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

Đã gửi 01 April 2008 - 12:55 PM

lisp rất tuyệt nhưng tại sao ko cho thêm 1 tùy chọn là tăng thêm bao nhiu đơn vị giống như tcount vậy?
nếu thêm đươc thì mình thấy rất hay. thay thế dc cho cả tcount và cao cấp hơn tcount
:bigsmile:
  • 0

#29 missone's

missone's

    biết vẽ rectang

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

Đã gửi 07 April 2008 - 10:49 PM

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...).

Sao em làm theo mà ko được nhỉ- trình độ còn kém quá- Phiền Bác giúp vậy!
Có phải là mình copy đoạn lisp vô dòng lệnh luôn ko Bác.
Cảm ơn Bác nha!
  • 0
neverforever

#30 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 07 April 2008 - 10:54 PM

Sao em làm theo mà ko được nhỉ- trình độ còn kém quá- Phiền Bác giúp vậy!
Có phải là mình copy đoạn lisp vô dòng lệnh luôn ko Bác.
Cảm ơn Bác nha!

Bạn xem ở đây: http://www.cadviet.c...howtip.php?t=14
  • 1

#31 vietha

vietha

    Chưa sử dụng CAD

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

Đã gửi 28 July 2008 - 08:13 PM

Bạn xem ở đây: http://www.cadviet.c...howtip.php?t=14

Cám ơn mọi người nhá, nhờ tham gia diễn đàn này mà mình khám phá ra nhiều chiêu giúp cho kỷ thuật Cad của mình ngày càng hoàn thiện hơn đó...thanks.
  • 0

#32 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:44 AM

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...).

Ok.thanks you,tuyệt cú mèo.Cảm ơn ai đã sinh ra lips trong thời đại cntt
  • 0

#33 oizdoi_oi

oizdoi_oi

    biết dimlinear

  • Members
  • PipPipPipPipPip
  • 306 Bài viết
Điểm đánh giá: 452 (tốt)

Đã gửi 01 October 2008 - 03:44 PM

lấy cái copy tăng dần mà mình vừa up hôm nay i'
  • 0
KTS không bao giờ chết đói...mà chỉ đói đến lúc chết!

#34 trinhks

trinhks

    biết vẽ circle

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

Đã gửi 16 October 2008 - 12:53 AM

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

Tại sao khi em sử dụng lisp này của bác lại ko đc,nó lại ra như trong anh nay vậy.bác sử gíp e đc ko? http://www.cadviet.com/upfiles/1_6.bmp
  • 0

#35 tranchan

tranchan

    biết lệnh break

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

Đã gửi 16 October 2008 - 08:20 AM

lấy cái copy tăng dần mà mình vừa up hôm nay i'


Cái lệnh copy tăng dân cua Oizdoioi, chi là số ko thì đc, chứ text chứa cả số và chữ thì ko dc. Ví như D1 copy thì ko thành D2, nhưng của Mr interewar thì dc vì có hàm xulitext.
Tôi cũng đã thử sủa đoạn
...
(if (= luusokt 100) (setq luusokt 0))
(setq kytu (rtos luusokt 2 0)
....

Thay luusokt> 100 thì chỉ giải quyết đc để 99 -> 100 chứ ko fải 99 ->0 ....
  • 0

#36 quanvuong

quanvuong

    Chưa sử dụng CAD

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

Đã gửi 18 February 2009 - 04:25 PM

Bạn dùng thử chương trình sau. Có 2 lệnh:
1) Lệnh OD: Ordinate number with any format. Đánh số thứ tự với bất kỳ định dạng nào: số, chữ, chữ và số. Ví dụ:
Command: od
Begin at <1>: HTT-01-03. Nếu không nhập số, bấm Enter sẽ mặc định từ 1
Increment <1>: 3. Nếu không nhập số, bấm Enter sẽ lấy mặc định là 1
Base point <exit>: chỉ điểm -> HTT-01-03
Base point <exit>: chỉ điểm -> HTT-01-06
Base point <exit>: chỉ điểm -> HTT-01-09
.........
Đến khi... chán thì:
Base point <exit>: Enter -> Thoát

2) Lệnh OC: Ordinate number, Copy from template. Đánh số thứ tự bằng cách copy mẫu có sẵn. Hoạt động giống như trên, nhưng thay vì "Begin at" thì chọn một mẫu có sẵn và 1 điểm tham chiếu làm chuẩn (tương tự như trình của bạn Lê Huy Hà nhưng có thêm tính năng tùy chọn Increment theo ý bạn).
Các bạn dùng nếu thấy có gì bất ổn thì phản hồi để mình sửa.


;;;------------------------------------------------------------------------------------
(defun getTw() ;;;Get textstyle
(cdr (assoc 41 (tblsearch "style" (getvar "textstyle"))))
)
;;;------------------------------------------------------------------------------------
(defun getTh( / Th) ;;;Get textheight or textsize
(if (= (setq Th (cdr (assoc 40 (tblsearch "style" (getvar "textstyle"))))) 0) (getvar "textsize") Th)
)
;;;------------------------------------------------------------------------------------
(defun emkT (S p) ;;;Entmake text S at p
(entmake (list (cons 0 "TEXT") (cons 10 p) (cons 40 (getTh))
(cons 41 (getTw)) (cons 1 S) (cons 7 (getvar "textstyle"))))
)
;;;------------------------------------------------------------------------------------
(defun incN (n dn / n2 i n1) ;;;Increase number n
(setq
n2 (itoa (+ dn (atoi n)))
i (- (strlen n) (strlen n2))
)
(if (> i 0) (setq n1 (substr n 1 i)) (setq n1 ""))
(strcat n1 n2)
)
;;;------------------------------------------------------------------------------------
(defun incC (c / i c1 c2) ;;;Increase character c
(setq
i (strlen c)
c1 (substr c 1 (- i 1))
c2 (chr (1+ (ascii (substr c i 1))))
)
(if (or (= c2 "{") (= c2 "["))
(progn (command "erase" (entlast) "") (alert "Over character!") (exit))
(strcat c1 c2)
)
)
;;;==============================================
(defun C:OD( / cn dn c n p) ;;;Make OrDinal number with any format
(setq
cn (getstring "\nBegin at <1>: " T)
dn (getint "\nIncrement <1>: ")
)
(if (not dn) (setq dn 1))
(if (= cn "") (setq cn "1"))
(setq c (vl-string-right-trim "0 1 2 3 4 5 6 7 8 9" cn))
(setq n (vl-string-subst "" c cn))
(if (/= n "") (setq mode 1) (setq mode 0))
(while (setq p (getpoint "\nBase point <exit>: "))
(emkT cn p)
(if (= n "")
(setq cn (incC cn))
(setq cn (strcat c (incN (vl-string-subst "" c cn) dn)))
)
)
(princ)
)
;;;==============================================
(defun C:OC( / e dn p1 cn c n p2 dat) ;;;Make Ordinal number. Copy from template
(setq
e (car (entsel "\nSelect template text:"))
dn (getint "\nIncrement <1>: ")
p1 (getpoint "\nBase point:")
cn (cdr (assoc 1 (entget e)))
)
(if (not dn) (setq dn 1))
(if (= cn "") (setq cn "1"))
(setq
c (vl-string-right-trim "0 1 2 3 4 5 6 7 8 9" cn)
n (vl-string-subst "" c cn)
)
(while (setq p2 (getpoint p1 "\nNew point <exit>: "))
(command "copy" e "" p1 p2)
(if (= n "")
(setq cn (incC cn))
(setq cn (strcat c (incN (vl-string-subst "" c cn) dn)))
)
(setq
dat (entget (entlast))
dat (subst (cons 1 cn) (assoc 1 dat) dat)
)
(entmod dat)
)
(princ)
)
;;;==============================================


Qúa tuyệt với. Mình thường xuyên phải đánh số thứ tự trong cad. Cảm ơn bạn rát nhiều nhé
  • 0

#37 tuanthunder

tuanthunder

    biết zoom

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

Đã gửi 26 February 2009 - 09:35 PM

Mình muốn hỏi nếu muốn tăng cả chữ và số có được không? VD: a1-b2-c3...
  • 0

#38 khanhduy

khanhduy

    biết vẽ arc

  • Members
  • PipPip
  • 45 Bài viết
Điểm đánh giá: -70 (yếu)

Đã gửi 07 March 2009 - 09:39 AM

các bác dùng thử lệnh tcount di.lệnh này cũng hay lắm đấy
  • 0

#39 tientgc

tientgc

    Chưa sử dụng CAD

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

Đã gửi 14 March 2009 - 10:28 AM

Mình thấy bài viết của bạn rất hay, minh cung da biết về lênh này nhưng chưa biết cách sử dụng ntn, mình đã copy lệnh của bạn về nhưng khi load về máy, dánh lệnh co, máy ko hiện lên dòng lệnh inteligent. chi guip minh cách để có thể sử dung được lệnh này. cảm ơn bạn rất rất nhiều
  • 0

#40 sunsouth205

sunsouth205

    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 March 2009 - 11:18 AM


Xin chào các bác!
Em đang làm cái hồ sơ tính toán khối lượng đào đất để thanh quyết toán. Nhưng khối lượng nhập các thông số vào autocad thì rất nhiều, mỗi lần cứ phải nhập vào một thông số của khối lượng. Như vậy sẽ là thật mất công một khi nó có sự sửa đổi.
Nay kô biết có lisp nào có thể làm được chức năng: chọn tất cả text một lần, rồi nhập lệnh vào là tự động nó cộng (hoặc trừ) vào text cũ để hiển thị ra kết quả mới! Được như vậy thì sẽ đỡ mất thời gian rất nhiều cho việc nhập kết quả tính này.
Rất mong các bác hỗ trợ giúp!
Thank!
  • 0