Đến nội dung


Hình ảnh

Cải tiến lệnh OD!


  • Please log in to reply
4 replies to this topic

#1 mrphuocvie

mrphuocvie

    biết vẽ ellipse

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

Đã gửi 10 June 2014 - 05:06 PM

Hiện tại em thấy trên forum có đoạn code OD(Text tăng dần), chúng ta có thể phát triển thêm thành phần tiền tố và hậu tố cho text đó! Xong chưa làm được, mong các anh chị giúp đỡ!

Ex: Cấu trúc: Tiento_OD_hauto

Trường hợp 1: có đủ các thành phần: A1z    A2z    A3z....

Trường hợp 2: không có tiền tố:  1z    2z    3z....

Trường hợp 3: không có tiền tố:  A1    A2   A3....

Trường hợp 4: không có tiền tố:  1    2   3....

Mong mọi người hồi âm!


  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5448 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 10 June 2014 - 05:14 PM

Hiện tại em thấy trên forum có đoạn code OD(Text tăng dần), chúng ta có thể phát triển thêm thành phần tiền tố và hậu tố cho text đó! Xong chưa làm được, mong các anh chị giúp đỡ!

Ex: Cấu trúc: Tiento_OD_hauto

Trường hợp 1: có đủ các thành phần: A1z    A2z    A3z....

Trường hợp 2: không có tiền tố:  1z    2z    3z....

Trường hợp 3: không có tiền tố:  A1    A2   A3....

Trường hợp 4: không có tiền tố:  1    2   3....

Mong mọi người hồi âm!

Cái màu đỏ ở đâu vậy bạn?


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


#3 mrphuocvie

mrphuocvie

    biết vẽ ellipse

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

Đã gửi 10 June 2014 - 06:14 PM

Sorry, em quên!

Em download theo link này: http://www.cadviet.c...dang-block-att/

Theo lời của anh ketxu: "Bạn dùng thử lisp của bác ssg viết cách đây...3 năm", em xin trích lại 1 đoạn thôi. Mong anh đừng buồn nhé!

Em đọc đoạn ghi chú trong lisp song em vẫn muốn tách rời thành 3 phần(tiền tố - phần thay đổi tự động - hậu tố) cho tiện trong việc nhập text.

;;;**********************************************
;;;CHUONG TRINH DANH SO THU TU VA COPY TANG DAN
;;;1. Lenh OD: danh so thu tu, tuy chon so bat dau (begin) va so gia (increment) tuy y
;;;2. Lenh OC: copy tang dan tu mot so thu tu co san
;;;3. Lenh oCA: copy tang dan voi doi tuong Attribute Block
;;;Chuong trinh chap nhan cac dinh dang bang so, chu, so va chu ket hop:
;;;1, 2... A, B..., A1, A2..., AB-01, AB-02..., AB-01-C1, AB-01-C2...
;;;Cac chu gioi han trong khoang tu A den Z. Cac so khong han che
;;;Copyright by ssg - www.cadviet.com - December 2008
;;;**********************************************
;;;-------------------------------------------------
(defun etype (e) ;;;Entity Type
(cdr (assoc 0 (entget e)))
)
;;;-------------------------------------------------
(defun wtxt (txt p / sty d h) ;;;Write txt on graphic screen, defaul setting
(setq
    sty (getvar "textstyle")
    d (tblsearch "style" sty)
    h (cdr (assoc 40 d))
)
(if (= h 0) (setq h (cdr (assoc 42 d))))
(entmake
    (list (cons 0 "TEXT") (cons 7 sty) (cons 1 txt) (cons 10 p) (cons 40 h) (assoc 41 d))
)
)
;;;-------------------------------------------------
(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>: ")
	be (getstring "\nBefore text:"); mrphuocvie mong muon them vao
	af (getstring "\nAfter text:"); mrphuocvie mong muon them vao
)
(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>: "))
    (wtxt cn p)
    (if (= n "") 
        (setq cn (incC cn))
        (setq cn (strcat c (incN (vl-string-subst "" c cn) dn)))        
    )
)
(princ)
)

Bài viết đã được chỉnh sửa nội dung bởi mrphuocvie: 10 June 2014 - 06:19 PM

  • 0

#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5448 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 11 June 2014 - 06:56 AM

Bạn đã sửa đến đó rồi thì chỉ cần sửa thêm 1 dòng nữa là đủ.

Sửa:

(wtxt cn p)

Thành:

(wtxt (strcat be cn af) p)


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


#5 mrphuocvie

mrphuocvie

    biết vẽ ellipse

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

Đã gửi 11 June 2014 - 10:19 AM

Thanks anh Doan Van Ha nhiều nhé!


  • 0