Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
790312

[Nhờ chỉnh sửa]Lisp copy tăng dần.

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

Đây là lisp do bác Bình viết:

(defun C:OCA( / e e0 dn p1 cn c n p2 dat) ;;;Make Ordinal number. Copy from Atttribute block
(setq
e0 (car (entsel "\nSelect attribute block:"))
e (entnext e0)
)
(if (/= (etype e) "ATTRIB") (progn (alert "Object is not a Attribute Block!") (exit)))
(setq name (getstr "\n Entering the attribute name: "))
(while (/= (cdr (assoc 2 (entget e))) name)
(setq e (entnext e))
)
(if e
(progn
(setq
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 : "))
(command "copy" e0 "" p1 p2)
(if (= n "")
   	(setq cn (incC cn))
   	(setq cn (strcat c (incN (vl-string-subst "" c cn) dn)))       
)
(setq
   	dat (entget (entnext (entlast)))
   	dat (subst (cons 1 cn) (assoc 1 dat) dat)
)
(entmod dat)
(command "regen")
)
)
)
(princ)
)

Nhưng khi sử dụng nó báo lỗi error: no function definition: GETSTR.Nhờ các bác xem và chỉnh sửa giùm.Thanks.

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

Có lẽ bạn chép thiếu chăng? Vì lisp này còn thiếu 2 hàm phụ nữa đó là:

GETSTR và INCC

Vì thiếu nên nó báo lỗi đấy.

Thân thươ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

Đây là lisp do bác Bình viết:

(defun C:OCA( / e e0 dn p1 cn c n p2 dat) ;;;Make Ordinal number. Copy from Atttribute block
(setq
e0 (car (entsel "\nSelect attribute block:"))
e (entnext e0)
)
(if (/= (etype e) "ATTRIB") (progn (alert "Object is not a Attribute Block!") (exit)))
(setq name (getstr "\n Entering the attribute name: "))
(while (/= (cdr (assoc 2 (entget e))) name)
(setq e (entnext e))
)
(if e
(progn
(setq
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 : "))
(command "copy" e0 "" p1 p2)
(if (= n "")
   	(setq cn (incC cn))
   	(setq cn (strcat c (incN (vl-string-subst "" c cn) dn)))      
)
(setq
   	dat (entget (entnext (entlast)))
   	dat (subst (cons 1 cn) (assoc 1 dat) dat)
)
(entmod dat)
(command "regen")
)
)
)
(princ)
)

Nhưng khi sử dụng nó báo lỗi error: no function definition: GETSTR.Nhờ các bác xem và chỉnh sửa giùm.Thanks.

Bạn vào đây xem "http://www.cadviet.com/forum/index.php?showtopic=7906" lisp của bác SSG mình thấy lisp rất "pro"

 

chúc bạn thanh cô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

@790312 : lisp bạn post là 1 phần lisp của bác ssg viết trong link nguyen tuan hung gửi bên trên!

Nếu bạn down được lisp ở đâu xin hãy hỏi ngay tại topic đó!

 

@nguyen tuan hung : 4room có chức năng post link (gần như tất cả các forum hiện nay), bạn chú ý sử dụng để đỡ phả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

Bạn 790312 ạ! Tôi đâu nói oan.

Về hàm GETSTR có thể bác PTB dùng getstring chăng?

Về 2 hàm INCC và INCN thì bạn thiếu. Lý do là bác PTB biểu bạn chép đoạn bác ấy sửa vào trong lisp của bác SSG, nhưng bạn lại để riêng ra nên khi dùng nó thiếu hàm. Tốt nhất bạn quay lại link của SSG để sử dụng xem sao.

Thân thương!

  • Vote tăng 1

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

Lisp này bác Bình sửa dựa vào lisp của bác SSQ.mình đã tải đầy đủ không chép thiếu đâu bác DOAN VAN HA ah.Đây là đường link gốc:

http://www.cadviet.c...showtopic=28487

Link nà y các MOD đã cho nó vào thùng rác.

Hề hề hề,

Vậy là bác ĐoanVanHa đã giải oan cho mình rùi đó. Đoạn lisp đó là mình sửa để thay cho một đoạn lisp của bác SSG nhằm giải quyết một yêu cầu của một bạn nào đó mà khi post mình đã nói rõ.

Ngoại trừ cái hàm (getstr .....) là do mình viết ẩu. Đúng ra nó phải là (getstring ..)._ như bác ĐoanVan Ha đã phát hiện

Bạn 790312 cópy về lấy ra dùng riêng rẽ thì nó không chạy ngay cả khi đã sửa lỗi trên vì thiếu các hàm bác SSG đã định nghĩa trước rùi.

Muốn nó chạy thì phải " đọc kỹ hướng dẫn trước khi dùng" thôi.

Âu cũng là một bài học cho các bạn chỉ thích xài mà không chịu tìm hiểu.. Lisp nó là con dao hai lưỡi, nếu biết xài thì nó có ích, nhưng nếu không biết xài thì không những nó vô ích mà còn có thể gây hại nữa.

Hy vọng rằng các bạn thích xài lisp hãy cẩn trọng với nó và không gì tốt bằng nếu các bạn có thể cố gắng tự mình tạo ra cái mình cần, khỏi phải dùng đồ đi mót để tránh bị phản thùng như trên.

Hề hề hề,...

Sorry các bác vì cái tội ẩu, Mình sẽ sửa lại ở bài gốc nhé....

  • Vote tăng 1

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  

×