Đến nội dung


Hình ảnh
* - - - - 1 Bình chọn

Các lỗi thường gặp trong lập trình Lisp


  • Please log in to reply
43 replies to this topic

#21 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 July 2011 - 04:49 PM

-->>>

Ồ, không phải bác Tue_NV à! Đây chỉ là minh họa theo ý của Ketxu thôi. Với tôi, chắc từ nay cũng phải đi theo con đường equal thôi. Khổ nỗi, không biết bao nhiêu lsp trước đây mình viết liệu có dính thằng nào không? Mà tìm nó ra để kêu án thì CS113 chắc không tìm nỗi vì nó nhiều.
Chán thật!
  • 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.


#22 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 30 July 2011 - 11:36 AM

Thêm một lỗi "oái oăm" nữa đây!
Các bạn load file đính kèm và dùng thử 4 lệnh HA1, HA2, HA3, HA4 sẽ thấy ngay.
Xử lý: khi nhập 1 số nằm ngoài đoạn [32768 32767] thì nên nhập kiểu real cho chắc ăn.

(defun C:HA1() ;Lenh HA1 bi loi.
(setq r 50000 p (list 0 0))
(command "circle" p r))
(defun C:HA2() ;Lenh HA2 ve duoc nhung ket qua sai.
(setq r 90000 p (list 0 0))
(command "circle" p r))
(defun C:HA3() ;Lenh HA3 ve dung voi moi gia tri r khong phai la so nguyen.
(setq r 50000.0 p (list 0 0))
(command "circle" p r))
(defun C:HA4() ;Lenh HA4 ve dung voi moi gia tri r.
(setq r 50000 p (list 0 0))
(entmake (list (cons 0 "circle") (cons 10 p) (cons 40 r))))

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


#23 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 07 September 2011 - 05:35 PM

Một lỗi mà nhiều người khi coding thường gặp phải :
Lấy ví dụ trong bài post của Ketxu gần đây :
http://www.cadviet.c...ndpost&p=167455
Điều gì sẽ xảy ra khi chạy lại hàm lần thứ 2 ??
Cách khắc phục : Luôn chú ý loại bỏ biến tạm
  • 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


#24 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 01 December 2011 - 04:28 PM

Hề hề hề,
Mình vừa gặp một lỗi thực tình là cũng phải mất khá khá thời gian mới mò ra và hiểu được nên post lên đây để mọi người phân tích và cùng rút kinh nghiệm:
Hàm (ssadd e ss)
Khi viết (setq ss (ssadd e ss)) thì luôn bị trả về nil với lỗi lentityp nil. mặc dầu trước đó đã có hàm (setq ss (ssadd))

Đến khi phát hiện ra lỗi đọc lại Help mới vỡ ra là: hàm chỉ có tác dụng: Adds an object (entity) to a selection set, or creates a new selection set (Tạm dịch là: Thêm đối tượng vào một tập chọn cũ hoặc tạo ra tập chọn mới.)

Do đó khi viết (setq ss (ssadd e ss)) được hiểu là đặt tên mới cho một tập chọn cũ nên nó biểu là hổng được và trả về nil.

Trường hợp này chỉ cần (ssadd e ss) là đủ tức là chỉ thêm một đối tượng vào tập chọn cũ chứ chả thay tên của nó.

Vậy mong mọi người cho thêm ý kiến về cái lỗi này và tránh mắc cái lỗi nớ....
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#25 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 01 December 2011 - 04:58 PM

Hề hề hề,
Mình vừa gặp một lỗi thực tình là cũng phải mất khá khá thời gian mới mò ra và hiểu được nên post lên đây để mọi người phân tích và cùng rút kinh nghiệm:
Hàm (ssadd e ss)
Khi viết (setq ss (ssadd e ss)) thì luôn bị trả về nil với lỗi lentityp nil. mặc dầu trước đó đã có hàm (setq ss (ssadd))

Đến khi phát hiện ra lỗi đọc lại Help mới vỡ ra là: hàm chỉ có tác dụng: Adds an object (entity) to a selection set, or creates a new selection set (Tạm dịch là: Thêm đối tượng vào một tập chọn cũ hoặc tạo ra tập chọn mới.)

Do đó khi viết (setq ss (ssadd e ss)) được hiểu là đặt tên mới cho một tập chọn cũ nên nó biểu là hổng được và trả về nil.

Trường hợp này chỉ cần (ssadd e ss) là đủ tức là chỉ thêm một đối tượng vào tập chọn cũ chứ chả thay tên của nó.

Vậy mong mọi người cho thêm ý kiến về cái lỗi này và tránh mắc cái lỗi nớ....


Sao ngộ vậy ta! Tôi cứ vô tư, chả bị gì là sao???
  • 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.


#26 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 01 December 2011 - 05:33 PM

2 hàm ssadd và ssdel không làm thay đổi tên tập chọn, chỉ thay đổi số đối tượng trong tập chọn, nên chỉ cần gán tên tập chọn ban đầu là đủ, nhưng gán lại cũng không thiệt chi ^^
  • 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


#27 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 01 December 2011 - 10:09 PM

2 hàm ssadd và ssdel không làm thay đổi tên tập chọn, chỉ thay đổi số đối tượng trong tập chọn, nên chỉ cần gán tên tập chọn ban đầu là đủ, nhưng gán lại cũng không thiệt chi ^^


Thực ra tôi nghĩ bác PTB có sơ suất ở 1 điều gì đó. Nói thiệt: tôi biết không bao giờ có chuyện này. Nhưng diễn đàn thì phải vậy, thậm chí hôm nay tôi phải srr tới 2 lần.
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.


#28 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 02 December 2011 - 01:40 AM

bác bình kiểm tra lại biến e. nếu e là nil sẽ gặp lỗi này. đặt lại (setq ss (ssadd e ss)) là thừa, nhưng nếu có đặt cũng không sao, không gây ra lỗi như bác nêu đâu ạ.
  • 1

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#29 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 02 December 2011 - 12:12 PM

bác bình kiểm tra lại biến e. nếu e là nil sẽ gặp lỗi này. đặt lại (setq ss (ssadd e ss)) là thừa, nhưng nếu có đặt cũng không sao, không gây ra lỗi như bác nêu đâu ạ.

Hề hề hề,
Mình bị lỗi thiệt và cách khăc phục của mình cũng chỉ có vậy là lisp nó chạy bon như ô tô vậy. Cũng vì thế mà mình mất công mày mò vì cứ nghĩ là viết (setq ss (ssadd e ss)) là được. Đến khi đọc lại hep và ngộ ra rồi chỉnh là (ssadde ss) thì nó chạy tối mắt luôn.
Ngoài ra mình chả biết nó lỗi chỗ nào nữa và mình không hề điều chỉnh gì khác nữa cả. Có nhẽ trong trường hợp này, thừa là có tội vậy.
Mình cũng chả rõ lắm là mình hiểu có đúng không nên mới post lên đây để mọi người phân tích chứ mình có dám nói đùa đâu.
Hề hề hề ,
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#30 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1435 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 02 December 2011 - 01:43 PM

Hề hề hề,
Mình bị lỗi thiệt và cách khăc phục của mình cũng chỉ có vậy là lisp nó chạy bon như ô tô vậy. Cũng vì thế mà mình mất công mày mò vì cứ nghĩ là viết (setq ss (ssadd e ss)) là được. Đến khi đọc lại hep và ngộ ra rồi chỉnh là (ssadde ss) thì nó chạy tối mắt luôn.
Ngoài ra mình chả biết nó lỗi chỗ nào nữa và mình không hề điều chỉnh gì khác nữa cả. Có nhẽ trong trường hợp này, thừa là có tội vậy.
Mình cũng chả rõ lắm là mình hiểu có đúng không nên mới post lên đây để mọi người phân tích chứ mình có dám nói đùa đâu.
Hề hề hề ,

Bác thử đoạn Lisp này xem sao :

(defun c:sstest(/ ss ss1)
(setq ss (ssadd) ss1 (ssadd))
(while (setq e (car (entsel "\nChon doi tuong :")))
(setq ss (ssadd e ss))
(princ (strcat "\nSo luong ss = " (itoa(sslength ss))))
(ssadd e ss1)
(princ (strcat "\nSo luong ss1 = " (itoa(sslength ss1))))
)
(princ) )

  • 0

#31 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 02 December 2011 - 02:46 PM

Bác thử đoạn Lisp này xem sao :


(defun c:sstest(/ ss ss1)
(setq ss (ssadd) ss1 (ssadd))
(while (setq e (car (entsel "\nChon doi tuong :")))
(setq ss (ssadd e ss))
(princ (strcat "\nSo luong ss = " (itoa(sslength ss))))
(ssadd e ss1)
(princ (strcat "\nSo luong ss1 = " (itoa(sslength ss1))))
)
(princ) )

Hề hề hề,
Quả thực là test cái của bác thì chả thấy sai ở đâu cả. Vậy có nhẽ do tác động của các yếu tố khác chăng.??? nhờ các bác test giùm đoạn code mình viết này coi nó vì sao lại bị lỗi như vậy???


(defun c:trbv (/ ssk ssk1 ss e1 p1 p2)
(vl-load-com)
(setq ssk (acet-ss-to-list (ssget (list (cons 0 "lwpolyline") (cons 8 "line_spe")))))
(foreach en ssk
(command "undo" "be")
(setq ss (ssget "cp" (acet-geom-vertex-list en)))
(setq e1 (entlast))
(command "copy" ss "" (setq p1 (car (acet-geom-vertex-list en))) (setq p2 (getpoint p1)))
(command "zoom" "e")
(setq e (entnext e1))
(while e
(flatent e)
(setq ssk1 (ssadd))
[color=#ff0000] (ssadd e ssk1)[/color]
(setq e (entnext e))
)
(setq ssk1 (acet-ss-to-list ssk1))
(foreach e ssk1
(if (and (= (cdr (assoc 0 (entget e))) "LWPOLYLINE") (= (cdr (assoc 8 (entget en))) "line_spe"))
(etrim e p1)
)
)
(command "copy" en "" p1 p2)
(etrim (entlast) p1)
(command "erase" (entlast) "")
(command "zoom" "p")
(command "undo" "e")

)
)
;;;;;;;;;;;;;;;;;;;;
(defun flatent (ename / elist etype tmpucs olderr oldcmd zeroz ss1 ss1len vrt crz)

(setq tmpucs "$FLATTEN-TEMP$") ;temporary UCS

;;Error handler
(setq olderr *error*)

;;Setup
(setq oldcmd (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
;;;;;;;;;;;; (command "._UNDO" "_Group")
(command "._UCS" "_Delete" tmpucs "._UCS" "_Save" tmpucs "._UCS" "_World") ;;;;;;;set World UCS

;;Get input
(setq ;;;;;;;;;;;;;;;;;; ename (ssname ss1 i) ;entity name
elist (entget ename) ;entity data list
etype (cdr (assoc 0 elist)) ;entity type

)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun *error* (msg)
(if (or (= msg "Function cancelled") (= msg "quit / exit abort"))
;;if user cancelled or program aborted, exit quietly
(princ)
;;otherwise report error message
(princ (strcat "\nError: " msg))
)
(setq *error* olderr)
(if (tblsearch "UCS" tmpucs)
(command "._UCS" "_Restore" tmpucs "._UCS" "_Delete" tmpucs)
)
;;;;;;;;; (command "._UNDO" "_End")
(setvar "CMDECHO" oldcmd)
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;Function to change Z coordinate to 0

(defun zeroz (key zelist / oplist nplist)
(setq oplist (assoc key zelist)
nplist (reverse (append '(0.0) (cdr (reverse oplist))))
zelist (subst nplist oplist zelist)
)
(entmod zelist)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;*Keep track of entities not flattened

;;Change group 10 Z coordinate to 0 for listed entity types.
(if (member etype
'("3DFACE" "ARC" "ATTDEF" "CIRCLE"
"DIMENSION" "ELLIPSE" "HATCH" "INSERT"
"LINE" "MTEXT" "POINT" "POLYLINE"
"SOLID" "TEXT"
)
)
(setq elist (zeroz 10 elist) ;change entities in list above

)
)

;;Change group 11 Z coordinate to 0 for listed entity types.
(if (member etype
'("3DFACE" "ATTDEF" "DIMENSION" "LINE" "TEXT" "SOLID")
)
(setq elist (zeroz 11 elist))
)

;;Change groups 12 and 13 Z coordinate to 0 for SOLIDs and 3DFACEs.
(if (member etype '("3DFACE" "SOLID"))
(progn
(setq elist (zeroz 12 elist))
(setq elist (zeroz 13 elist))
)
)

;;Change groups 13, 14, 15, and 16
;;Z coordinate to 0 for DIMENSIONs.
(if (member etype '("DIMENSION"))
(progn
(setq elist (zeroz 13 elist))
(setq elist (zeroz 14 elist))
(setq elist (zeroz 15 elist))
(setq elist (zeroz 16 elist))
)
)

;;Change each polyline vertex Z coordinate to 0.
;;Code provided by Vladimir Livshiz, 09-Oct-1998
(if (= etype "POLYLINE")
(progn
(setq vrt ename)
(while (not (equal (cdr (assoc 0 (entget vrt))) "SEQEND"))
(setq elist (entget (entnext vrt)))
(setq crz (cadddr (assoc 10 elist)))
(if (/= crz 0)
(progn
(zeroz 10 elist)
(entupd ename)
)
)
(setq vrt (cdr (assoc -1 elist)))
) ;;;;;;;;; end of while
)
)

;;Special handling for LWPOLYLINEs
(if (member etype '("LWPOLYLINE"))
(progn
(setq elist (subst (cons 38 0.0) (assoc 38 elist) elist)

)
(entmod elist)
)
)
(command "._UCS" "_Restore" tmpucs "._UCS" "_Delete" tmpucs)
;;;;;;;;;;; (command "._UNDO" "_End")
(setvar "CMDECHO" oldcmd)
(setq *error* olderr)
ename
)
Mình chỉ thay (setq ssk1 (ssadd e ssk1)) bằng (ssadd e ssk1) thì nó chạy ngon lành mà để như cũ thì nó báo lỗi lentityp nil.
Kỳ quái thiệt.
Rất mong các bác làm sáng tỏ vấn đề.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#32 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 02 December 2011 - 03:13 PM

Hề hề hề,
Quả thực là test cái của bác thì chả thấy sai ở đâu cả. Vậy có nhẽ do tác động của các yếu tố khác chăng.??? nhờ các bác test giùm đoạn code mình viết này coi nó vì sao lại bị lỗi như vậy???
Mình chỉ thay (setq ssk1 (ssadd e ssk1)) bằng (ssadd e ssk1) thì nó chạy ngon lành mà để như cũ thì nó báo lỗi lentityp nil.
Kỳ quái thiệt.
Rất mong các bác làm sáng tỏ vấn đề.


Bác giấu cái thằng ETRIM đâu rồi?
  • 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.


#33 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 02 December 2011 - 03:17 PM

bác gửi cả bản vẽ mà bác dùng để test lisp này + hàm etrim nữa để em kiểm tra coi nào :D
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#34 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 December 2011 - 10:33 AM

Thêm 1 điều lý thú nữa đây:

Command: (setq a 5279.0)
5279.0
Command: (rtos a 2 13)
"5278.999999999999"

Command: (setq a 5280.0)
5280.0
Command: (rtos a 2 13)
"5280.000000000001"

Command: (setq a 5281.0)
5281.0
Command: (rtos a 2 13)
"5281.000000000000"

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


#35 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 10 December 2011 - 03:50 PM


Bác giấu cái thằng ETRIM đâu rồi?

Cái Etrim là mình load sẵn nó trong start suit rồi vì bị nhiều lần nó chơi kiểu điếc với thằng etrim này. Bởi vậy nên bây giờ lại hay quên chép nó vào code các bác ạ.
Tuy nhiên chắc chắn không phải lỗi của thằng này đâu bác ạ.
hề hề hề, nó là lỗi lentityp nil. mà bác không phải lỗi Unknown command Etrim.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#36 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 10 December 2011 - 03:57 PM

bác gửi cả bản vẽ mà bác dùng để test lisp này + hàm etrim nữa để em kiểm tra coi nào :D

Nó đây ạ:
http://www.4shared.c.../BDKM22-30.html
Còn về thằng etrim thì bác chĩ cần load thằng Extrim.lsp trong express tools vào Start suit là nó thường trực mà, đâu cần gửi khi mà bác đã có sẵn rùi bác nhể. Thằng này là hàm con trong thằng extrim bác ạ.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#37 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 10 December 2011 - 04:17 PM

Thêm 1 điều lý thú nữa đây:

Hề hề hề,
Bác làm chi mà cần tới một lũ tí nhau vậy hở bác. Mình chỉ xài đến 4 con là đã phờ râu rồi bác ạ.
Cái ni chắc tại nhiều con nhỏ quá nên thằng lisp nó nhìn lộn con nọ vào con kia ấy mà bác.
Hề hề hề,...
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#38 kid_a2pbc

kid_a2pbc

    biết vẽ line

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

Đã gửi 09 August 2012 - 11:01 AM

Các bác cho em hỏi. Lisp có chương trình nào để chạy kiểm tra lỗi được ko ạ. Kiểu như pascal trước đây em học, trong chương trình thì có kiểm tra chạy từng dòng nó báo lỗi để mình dễ phát hiện ra ấy ạ. Em cám ơn!:)
  • 0

#39 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 09 August 2012 - 02:59 PM

Đây là các bước kiểm tra lỗi Lisp tôi sưu tầm được:
TÌM DÒNG CODE BỊ LỖI
1). Mở Vlide => mở File => Tools => Load Text in Editor
2). Vào Debug => Tick vào Break On Error (nếu chưa)
3). Về lại Cad => Chạy lisp
4). Về Vlide => Debug => Last Break Source => đoạn Code lỗi sẽ được Highlight
5). Cuối cùng: Debug => Reset to Top Level để thoát
  • 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.


#40 kid_a2pbc

kid_a2pbc

    biết vẽ line

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

Đã gửi 09 August 2012 - 03:34 PM

Em làm như bác bảo. nó báo :CALLBACK-ENTRY là như nào hả bác?
  • 0