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.
Đăng nhập để thực hiện theo  
mrphuocvie

Cải tiến lệnh OD!

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

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!

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

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?

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

Sorry, em quên!

Em download theo link này: http://www.cadviet.com/forum/topic/34029-can-lisp-danh-so-thu-tu-theo-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)
)
Chỉnh sửa theo mrphuocvie

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

Đăng nhập để thực hiện theo  

×