Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
7 replies to this topic

#1 790312

790312

    biết lệnh fillet

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

Đã gửi 03 November 2011 - 09:28 AM

Đâ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.
  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 03 November 2011 - 09:43 AM

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!
  • 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 nguyen tuan hung

nguyen tuan hung

    biết vẽ arc

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

Đã gửi 03 November 2011 - 09:49 AM

Đâ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.c...showtopic=7906" lisp của bác SSG mình thấy lisp rất "pro"

chúc bạn thanh công.
  • 0

#4 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 03 November 2011 - 10:11 AM

@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é :)
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#5 790312

790312

    biết lệnh fillet

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

Đã gửi 03 November 2011 - 10:14 AM

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

#6 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 03 November 2011 - 10:19 AM

Bạn thử thay Getstr thành Getstring xem sao ?
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#7 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 03 November 2011 - 10:33 AM

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!
  • 1

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


#8 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 03 November 2011 - 12:27 PM

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é....
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.