Đến nội dung


Hình ảnh
- - - - -

[Lỗi] Lisp sắp xếp DIM


  • Please log in to reply
17 replies to this topic

#1 tuan138

tuan138

    biết zoom

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

Đã gửi 26 April 2012 - 10:49 AM


(defun c:sd ()
(defun ss2ent (ss / sodt index lstent)
(setq
sodt (cond
(ss (sslength ss))
(t 0)
)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)
(defun hoanh_newerror (msg)
(if (and (/= msg "Function cancelled")
(/= msg "quit / exit abort")
)
(princ (strcat "\n" msg))
)
(done)
)
;;----------
(defun init ()
(setq
HOANH_CMD (getvar "CMDECHO")
HOANH_OLDERROR *error*
*error* hoanh_newerror
)
(setvar "CMDECHO" 0)
(command ".undo" "BE")
)
;;----------
(defun done ()
(command ".redraw")
(command ".undo" "E")
(if HOANH_CMD
(setvar "CMDECHO" HOANH_CMD)
)
(if HOANH_OLDERROR
(setq *error* HOANH_OLDERROR)
)
(princ)
)
;;----------
(defun cdim (entdt pchan pduong / tt old10
old13 old14 new10 new13 new14 p10n
p13n p14n p10o p13o p14o gocduong
gocchan pchanb pduongb loaidim
)
(defun chanvuonggoc (ph p1 p2 / ptemp pkq goc)
(setq
goc (+ (angle p1 p2) (/ pi 2.0))
ptemp (polar ph goc 1000.0)
pkq (inters ph ptemp p1 p2 nil)
)
pkq
)
(setq
tt (entget entdt)
old10 (assoc '10 tt)
old13 (assoc '13 tt)
old14 (assoc '14 tt)
p10o (cdr old10)
p13o (cdr old13)
p14o (cdr old14)
loaidim (logand (cdr (assoc '70 tt)) 7)
gocduong (cond
((= loaidim 1) (angle p13o p14o))
((= loaidim 0) (cdr (assoc '50 tt)))
(t nil)
)
pchan (cond
(pchan (list (car pchan) (cadr pchan) 0.0))
(t pchan)
)
pduong (cond
(pduong (list (car pduong) (cadr pduong) 0.0))
(t pduong)
)
)
(if gocduong
(progn
(if pchan
(setq
pchanb (polar pchan gocduong 1000.0)
p13n (chanvuonggoc
(list (car p13o) (cadr p13o) 0.0)
pchan
pchanb
)
p14n (chanvuonggoc
(list (car p14o) (cadr p14o) 0.0)
pchan
pchanb
)
new13 (cons 13 p13n)
new14 (cons 14 p14n)
tt (subst new13 old13 tt)
tt (subst new14 old14 tt)
)
)
(if pduong
(setq
pduongb (polar pduong gocduong 1000.0)
p10n (chanvuonggoc
(list (car p10o) (cadr p10o) 0.0)
pduong
pduongb
)
new10 (cons 10 p10n)
tt (subst new10 old10 tt)
)
)
(entmod tt)
)
)
gocduong
)
(defun textdimheight (ent / tmp)
(command ".copy" ent "" (list 0.0 0.0 0.0) "@")
(command ".explode" (entlast) "")
(setq tmp (cdr (assoc 40 (entget (entlast)))))
(command ".erase" "p" "")
tmp
)
(defun phia (p1 p2 p3 / x1 y1 z1 x2 y2 z2 x3 y3 z3)
(setq
x1 (car p1)
y1 (cadr p1)
z1 (caddr p1)
x2 (car p2)
y2 (cadr p2)
z2 (caddr p2)
x3 (car p3)
y3 (cadr p3)
z3 (caddr p3)
tmp (+ (* (- x1 x2) x3)
(* (- y1 y2) y3)
(* (- z1 z2) z3)
)
)
(cond
((= tmp 0.0) 0.0)
(t (/ tmp (abs tmp)))
)
)
(defun khoangcachdim (p1 ent goc / tt p2 A B D)
(setq tt (entget ent)
p2 (cdr (assoc 10 tt))
B (cdr (assoc 50 tt))
A (angle p1 p2)
D (distance p1 p2)
)
(* (* D (sin (- A [b]B )[/b])) (phia p1 (polar p1 goc 1.0) p2))
)
(defun phanloai (ent)
(setq
kc (khoangcachdim pgoc ent goc)
loai (fix (/ kc heightdimgoc 0.93))
)
(cons loai ent)
)
(init)
(princ "\nSap xep dim © CADViet.com")
(while (not (setq entgoc (car (entsel "\nChon duong dim goc: "))))
)
(setq
ttgoc (entget entgoc)
p13goc (cdr (assoc 13 ttgoc))
pgoc (cdr (assoc 10 ttgoc))
goc (cdr (assoc 50 ttgoc))
heightdimgoc (textdimheight entgoc)
ssd (ssget (list
(cons 0 "DIMENSION")
(cons -4 ") (cons="" 70="" 32)="" 64)="" 96)="" 128)="" 160)="" 196)="" 224)="" -4="" "or="">")
(cons -4 ") (cons="" 50="" goc)="" (+="" goc="" pi))="" (-="" -4="" "or="">")
)
)
lstd (ss2ent ssd)
lstd (mapcar 'phanloai lstd)
lstlevel nil
)
(foreach pp lstd
(if (not (member (car pp) lstlevel))
(setq lstlevel (append lstlevel (list (car pp))))
)
)
(setq lstlevel (vl-sort lstlevel '(lambda (x1 x2) (< x1 x2)))
lstam nil
lstduong nil
lstamtmp nil
lstduongtmp nil
)
(foreach pp lstlevel
(if (< pp 0.0)
(setq lstam (append lstam (list pp)))
)
(if (> pp 0.0)
(setq lstduong (append lstduong (list pp)))
)
)
(setq index 0)
(foreach pp (reverse lstam)
(setq
index (1+ index)
lstamtmp (append lstamtmp (list (cons pp index)))
)
)
(setq
lstam lstamtmp
index 0
)
(foreach pp lstduong
(setq
index (1+ index)
lstduongtmp (append lstduongtmp (list (cons pp index)))
)
)
(setq lstduong lstduongtmp)
(setq lstlevel (append lstduong lstam (list (cons 0.0 0))))
(setq kcdimstandard (* 3.0 heightdimgoc))
(foreach pp lstd
(setq plht (car pp))
(progn
(setq
kcdimht (khoangcachdim pgoc (cdr pp) goc)
duongthu (cdr (assoc plht lstlevel))
heso (cond
((/= 0 kcdimht)
(abs (* (/ kcdimstandard kcdimht) duongthu))
)
(t 0.0)
)
diemchenht (cdr (assoc 10 (entget (cdr pp))))
pmoi (polar pgoc
(angle pgoc diemchenht)
(* heso (distance pgoc diemchenht))
)
)
(cdim (cdr pp) p13goc pmoi)
)
)
(done)
)
(princ "\nSap xep dim, SD - free lisp from www.cadviet.com")
(princ)

nhập lệnh sd, báo "chon doi tuong". chọn xong thì bị lỗi

Chon duong dim goc: Unknown command "SD". Press F1 for help.
too many arguments
- Chưa load lisp nào khác
- Chưa có lệnh sd trùng

Cao thủ nào giúp em với nhé! Thanks
  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 26 April 2012 - 11:48 AM

nhập lệnh sd, báo "chon doi tuong". chọn xong thì bị lỗi
Chon duong dim goc: Unknown command "SD". Press F1 for help.
too many arguments
- Chưa load lisp nào khác
- Chưa có lệnh sd trùng
Cao thủ nào giúp em với nhé! Thanks

File lisp của bạn bị lỗi ngay khi load (sau khi load xong, bạn bấm F2 sẽ thấy).
Vì vậy, hãy tìm lại file gốc chính xác mà down về dù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 tuan138

tuan138

    biết zoom

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

Đã gửi 26 April 2012 - 12:07 PM

File lisp của bạn bị lỗi ngay khi load (sau khi load xong, bạn bấm F2 sẽ thấy).
Vì vậy, hãy tìm lại file gốc chính xác mà down về dùng.


Thanks bác. Mình copy + download từ bài của bác Nguyen Hoanh mà: http://www.cadviet.c...opic=205&st=120
Và cũng không tìm được file gốc chính xác ở đâu nữa. Bác biết chỗ nào thì chỉ cho e với
  • 0

#4 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 26 April 2012 - 01:50 PM

nhập lệnh sd, báo "chon doi tuong". chọn xong thì bị lỗi Chon duong dim goc: Unknown command "SD". Press F1 for help. too many arguments - Chưa load lisp nào khác - Chưa có lệnh sd trùng Cao thủ nào giúp em với nhé! Thanks

Hề hề hề,
Đúng là file của bạn bị lỗi.
Sau khi lọ mọ dò lỗi mình phát hiện ra các lỗi như sau:
1/- Dòng code này: (* (* D (sin (- A B ))) (phia p1 (polar p1 goc 1.0) p2))
2/- Dóng code này: ssd (ssget (list (cons 0 "DIMENSION") (cons -4 ") (cons="" 70="" 32)="" 64)="" 96)="" 128)="" 160)="" 196)="" 224)="" -4="" "or="">") (cons -4 ") (cons="" 50="" goc)="" (+="" goc="" pi))="" (-="" -4="" "or="">") )
3/- dòng code này: (while (not (setq entgoc (car (entsel "\nChon duong dim goc: ")))) )

Nếu khắc phục được các lỗi này thì may ra có thể chạy lisp được, còn kết quả thì ..... Hậu xét.
Lỗi này theo mình hiểu là do code box của diễn đàn có vấn đề chứ mình tin code của bác Nguyenhoanh thì khó mà sai lắm. Có thể liên hệ trực tiếp với bác ấy để xin file gốc.
Hề hề hề,
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#5 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 26 April 2012 - 02:12 PM

Thanks bác. Mình copy + download từ bài của bác Nguyen Hoanh mà: http://www.cadviet.c...opic=205&st=120
Và cũng không tìm được file gốc chính xác ở đâu nữa. Bác biết chỗ nào thì chỉ cho e với

Hơi vất vả khi phải sửa lisp bị lỗi vì những ký tự đặc biệt (chứ bản chất lisp không lỗi).
Đây, bạn xem:

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=205&st=120
(defun c:sd ()
(defun ss2ent (ss / sodt index lstent)
(setq
sodt (cond
(ss (sslength ss))
(t 0)
)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)
(defun hoanh_newerror (msg)
(if (and (/= msg "Function cancelled")
(/= msg "quit / exit abort")
)
(princ (strcat "\n" msg))
)
(done)
)
;;----------
(defun init ()
(setq
HOANH_CMD (getvar "CMDECHO")
HOANH_OLDERROR *error*
*error* hoanh_newerror

)
(setvar "CMDECHO" 0)
(command ".undo" "BE")
)
;;----------
(defun done ()
(command ".redraw")
(command ".undo" "E")
(if HOANH_CMD
(setvar "CMDECHO" HOANH_CMD)
)
(if HOANH_OLDERROR
(setq *error* HOANH_OLDERROR)
)
(princ)
)
;;----------

(defun cdim (entdt pchan pduong / tt old10
old13 old14 new10 new13 new14 p10n
p13n p14n p10o p13o p14o gocduong
gocchan pchanb pduongb loaidim
)
(defun chanvuonggoc (ph p1 p2 / ptemp pkq goc)
(setq
goc (+ (angle p1 p2) (/ pi 2.0))
ptemp (polar ph goc 1000.0)
pkq (inters ph ptemp p1 p2 nil)
)
pkq
)
(setq
tt (entget entdt)
old10 (assoc '10 tt)
old13 (assoc '13 tt)
old14 (assoc '14 tt)
p10o (cdr old10)
p13o (cdr old13)
p14o (cdr old14)
loaidim (logand (cdr (assoc '70 tt)) 7)
gocduong (cond
((= loaidim 1) (angle p13o p14o))
((= loaidim 0) (cdr (assoc '50 tt)))
(t nil)
)
pchan (cond
(pchan (list (car pchan) (cadr pchan) 0.0))
(t pchan)
)
pduong (cond
(pduong (list (car pduong) (cadr pduong) 0.0))
(t pduong)
)

)
(if gocduong
(progn
(if pchan
(setq
pchanb (polar pchan gocduong 1000.0)
p13n (chanvuonggoc
(list (car p13o) (cadr p13o) 0.0)
pchan
pchanb
)
p14n (chanvuonggoc
(list (car p14o) (cadr p14o) 0.0)
pchan
pchanb
)
new13 (cons 13 p13n)
new14 (cons 14 p14n)
tt (subst new13 old13 tt)
tt (subst new14 old14 tt)
)
)
(if pduong
(setq
pduongb (polar pduong gocduong 1000.0)
p10n (chanvuonggoc
(list (car p10o) (cadr p10o) 0.0)
pduong
pduongb
)
new10 (cons 10 p10n)
tt (subst new10 old10 tt)
)
)
(entmod tt)
)
)
gocduong
)

(defun textdimheight (ent / tmp)
(command ".copy" ent "" (list 0.0 0.0 0.0) "@")
(command ".explode" (entlast) "")
(setq tmp (cdr (assoc 40 (entget (entlast)))))
(command ".erase" "p" "")
tmp
)
(defun phia (p1 p2 p3 / x1 y1 z1 x2 y2 z2 x3 y3 z3)
(setq
x1 (car p1)
y1 (cadr p1)
z1 (caddr p1)
x2 (car p2)
y2 (cadr p2)
z2 (caddr p2)
x3 (car p3)
y3 (cadr p3)
z3 (caddr p3)
tmp (+ (* (- x1 x2) x3)
(* (- y1 y2) y3)
(* (- z1 z2) z3)
)
)
(cond
((= tmp 0.0) 0.0)
(t (/ tmp (abs tmp)))
)
)
(defun khoangcachdim (p1 ent goc / tt p2 A B D)
(setq tt (entget ent)
p2 (cdr (assoc 10 tt))
B (cdr (assoc 50 tt))
A (angle p1 p2)
D (distance p1 p2)
)
(* (* D (sin (- A B))) (phia p1 (polar p1 goc 1.0) p2))
)

(defun phanloai (ent)
(setq
kc (khoangcachdim pgoc ent goc)
loai (fix (/ kc heightdimgoc 0.93))
)
(cons loai ent)
)

(init)
(princ "\nSap xep dim &#169; CADViet.com")
(while (not (setq entgoc (car (entsel "\nChon duong dim goc: "))))
)
(setq
ttgoc (entget entgoc)
p13goc (cdr (assoc 13 ttgoc))
pgoc (cdr (assoc 10 ttgoc))
goc (cdr (assoc 50 ttgoc))
heightdimgoc (textdimheight entgoc)
ssd (ssget (list
(cons 0 "DIMENSION")
(cons -4 "<OR")
(cons 70 32)
(cons 70 64)
(cons 70 96)
(cons 70 128)
(cons 70 160)
(cons 70 196)
(cons 70 224)
(cons -4 "OR>")
(cons -4 "<OR")
(cons 50 goc)
(cons 50 (+ goc pi))
(cons 50 (- goc pi))
(cons -4 "OR>")
)
)
lstd (ss2ent ssd)
lstd (mapcar 'phanloai lstd)
lstlevel nil
)
(foreach pp lstd
(if (not (member (car pp) lstlevel))
(setq lstlevel (append lstlevel (list (car pp))))
)
)
(setq lstlevel (vl-sort lstlevel '(lambda (x1 x2) (< x1 x2)))
lstam nil
lstduong nil
lstamtmp nil
lstduongtmp nil
)
(foreach pp lstlevel
(if (< pp 0.0)
(setq lstam (append lstam (list pp)))
)
(if (> pp 0.0)
(setq lstduong (append lstduong (list pp)))
)
)
(setq index 0)
(foreach pp (reverse lstam)
(setq
index (1+ index)
lstamtmp (append lstamtmp (list (cons pp index)))
)
)
(setq
lstam lstamtmp
index 0
)
(foreach pp lstduong
(setq
index (1+ index)
lstduongtmp (append lstduongtmp (list (cons pp index)))
)
)
(setq lstduong lstduongtmp)
(setq lstlevel (append lstduong lstam (list (cons 0.0 0))))

(setq kcdimstandard (* 3.0 heightdimgoc))
(foreach pp lstd
(setq plht (car pp))
(progn
(setq
kcdimht (khoangcachdim pgoc (cdr pp) goc)
duongthu (cdr (assoc plht lstlevel))
heso (cond
((/= 0 kcdimht)
(abs (* (/ kcdimstandard kcdimht) duongthu))
)
(t 0.0)
)
diemchenht (cdr (assoc 10 (entget (cdr pp))))
pmoi (polar pgoc
(angle pgoc diemchenht)
(* heso (distance pgoc diemchenht))
)
)

(cdim (cdr pp) p13goc pmoi)
)
)
(done)
)
(princ "\nSap xep dim, SD - free lisp from www.cadviet.com")
(princ)

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


#6 tuan138

tuan138

    biết zoom

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

Đã gửi 26 April 2012 - 03:04 PM

Cảm ơn vì sự nhiệt tình của hai bác. Em làm được rồi.:D

  • 0

#7 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 26 April 2012 - 03:46 PM

Hơi vất vả khi phải sửa lisp bị lỗi vì những ký tự đặc biệt (chứ bản chất lisp không lỗi).
Đây, bạn xem:

Hề hề hề,
Bác ĐoanVanha cẩn thận quá, đã có (+ goc pi) bác còn thêm (- goc pi) cho chắc hả bác??? Cái (cons -4 ....) này cũng lắm chuyện ra phết bác hỉ??? Liệu có thể thay bằng (or (cons 70 32)....... (cons 70 224)) vào trong cái list đó được không hay nhất thiết phải dùng thằng (cons -4 ...) này hử bác???
Còn cái dòng code
(while (not (setq entgoc (car (entsel "\nChon duong dim goc: ")))) )
của bác Hoanh hay ghê. Cứ tưởng là dư dấu ngoạc đóng, té ra nó có công dụng khác. Hề hề hề,...
Có nên thay nó bằng (if (= entgoc nil) (setq entgoc (car (entsel "\n Chon duong dim goc")))) không bác hè??
Tuy bác sửa vậy lisp đã chạy nhưng mình thấy vẫn có chỗ chưa ưng lắm như sau:
1/- Luôn xuất hiện dòng thông báo : Unknown command "SD" . Press F1 for help.
2/- Kết quả sắp xếp chưa thật đúng ý.
Không biết có phải tại mình chưa biết cách xài cái lisp này hay không????

Hề hề hề, Giá như khắc phục được những điểm trên thì tuyệt....
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#8 tuan138

tuan138

    biết zoom

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

Đã gửi 26 April 2012 - 04:14 PM

Hề hề hề,
Bác ĐoanVanha cẩn thận quá, đã có (+ goc pi) bác còn thêm (- goc pi) cho chắc hả bác??? Cái (cons -4 ....) này cũng lắm chuyện ra phết bác hỉ??? Liệu có thể thay bằng (or (cons 70 32)....... (cons 70 224)) vào trong cái list đó được không hay nhất thiết phải dùng thằng (cons -4 ...) này hử bác???
Còn cái dòng code
(while (not (setq entgoc (car (entsel "\nChon duong dim goc: ")))) )
của bác Hoanh hay ghê. Cứ tưởng là dư dấu ngoạc đóng, té ra nó có công dụng khác. Hề hề hề,...
Có nên thay nó bằng (if (= entgoc nil) (setq entgoc (car (entsel "\n Chon duong dim goc")))) không bác hè??
Tuy bác sửa vậy lisp đã chạy nhưng mình thấy vẫn có chỗ chưa ưng lắm như sau:
1/- Luôn xuất hiện dòng thông báo : Unknown command "SD" . Press F1 for help.
2/- Kết quả sắp xếp chưa thật đúng ý.
Không biết có phải tại mình chưa biết cách xài cái lisp này hay không????

Hề hề hề, Giá như khắc phục được những điểm trên thì tuyệt....

1/ Đúng là vẫn còn thông báo Unknown command "SD" . Press F1 for help. Nhưng với em thì dùng được là tốt rồi, vì chẳng biết sửa ở đâu:D
2/ Em thấy kết quả sắp xếp ngon đấy chứ
  • 0

#9 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 26 April 2012 - 04:25 PM

Hề hề hề,
Bác ĐoanVanha cẩn thận quá, đã có (+ goc pi) bác còn thêm (- goc pi) cho chắc hả bác??? Cái (cons -4 ....) này cũng lắm chuyện ra phết bác hỉ??? Liệu có thể thay bằng (or (cons 70 32)....... (cons 70 224)) vào trong cái list đó được không hay nhất thiết phải dùng thằng (cons -4 ...) này hử bác???
Còn cái dòng code
(while (not (setq entgoc (car (entsel "\nChon duong dim goc: ")))) )
của bác Hoanh hay ghê. Cứ tưởng là dư dấu ngoạc đóng, té ra nó có công dụng khác. Hề hề hề,...
Có nên thay nó bằng (if (= entgoc nil) (setq entgoc (car (entsel "\n Chon duong dim goc")))) không bác hè??
Tuy bác sửa vậy lisp đã chạy nhưng mình thấy vẫn có chỗ chưa ưng lắm như sau:
1/- Luôn xuất hiện dòng thông báo : Unknown command "SD" . Press F1 for help.
2/- Kết quả sắp xếp chưa thật đúng ý.
Không biết có phải tại mình chưa biết cách xài cái lisp này hay không????
Hề hề hề, Giá như khắc phục được những điểm trên thì tuyệt....

Ha Ha Ha! Vui quá, bởi vì bần tôi có sáng tác gì đâu! Chỉ là tìm mấy cái lisp cùng tên xem đoạn nào không lỗi thì paste vào đoạn bị lỗi thôi bác à.
1). goc+pi và goc-pi là 2 góc khác nhau mà bác.
2). (or (cons 70 32)....... (cons 70 224)): hàm ssget đâu cho thoải mái thế bác.
3). (if (= entgoc nil) (setq entgoc (car (entsel "\n Chon duong dim goc")))): hàm này chỉ thực hiện 1 lần, nếu chọn trật thì bó tay, nên không thay được.
4). Tôi chạy ngon lành, không có dòng báo lỗi nào hết. Nguyên nhân vì sao thì để ngâm cứu xem.
5). Tôi chưa thấy khuyết điểm nên chưa nghĩ tới cách khắc phục. Hơn nữa đây là lisp của bác Hoành cơ mà.
Thâ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.


#10 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 26 April 2012 - 07:28 PM

Ha Ha Ha! Vui quá, bởi vì bần tôi có sáng tác gì đâu! Chỉ là tìm mấy cái lisp cùng tên xem đoạn nào không lỗi thì paste vào đoạn bị lỗi thôi bác à.
1). goc+pi và goc-pi là 2 góc khác nhau mà bác.
2). (or (cons 70 32)....... (cons 70 224)): hàm ssget đâu cho thoải mái thế bác.
3). (if (= entgoc nil) (setq entgoc (car (entsel "\n Chon duong dim goc")))): hàm này chỉ thực hiện 1 lần, nếu chọn trật thì bó tay, nên không thay được.
4). Tôi chạy ngon lành, không có dòng báo lỗi nào hết. Nguyên nhân vì sao thì để ngâm cứu xem.
5). Tôi chưa thấy khuyết điểm nên chưa nghĩ tới cách khắc phục. Hơn nữa đây là lisp của bác Hoành cơ mà.
Thân!

Hề hề hề,
Thanks bác đã chỉ dẫn.
4/- Không phải là lỗi mà kiểu như bị thửa một thằng (command "") thì phải. Mình đã tìm nhưng chưa phát hiện được bác ạ.
5/- Đúng là lisp của bác Hoành thiệt, như đây là lisp mở mà bác, Nếu có thể chỉnh sửa được thì ta cứ chỉnh thoải mái cho phù hợp với yêu cầu sử dụng của mình thôi mà. Bác ấy chả giận đâu.

Vấn đề là mình chưa đủ khả năng để chỉnh được nó chứ nếu chỉnh được thì mình đã chỉnh rồi bác ạ. Chả để cái khó chịu ấy lại làm gì....
Và đây là cái mình thử chạy với lisp đó cho ba trường hợp khác nhau khi chọn đối tượng mẫu của cùng một bản vẽ ban đầu.
http://www.mediafire...rw9i7t0s3t95jz9
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#11 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 26 April 2012 - 08:47 PM

Hề hề hề,
Thanks bác đã chỉ dẫn.
4/- Không phải là lỗi mà kiểu như bị thửa một thằng (command "") thì phải. Mình đã tìm nhưng chưa phát hiện được bác ạ.
5/- Đúng là lisp của bác Hoành thiệt, như đây là lisp mở mà bác, Nếu có thể chỉnh sửa được thì ta cứ chỉnh thoải mái cho phù hợp với yêu cầu sử dụng của mình thôi mà. Bác ấy chả giận đâu.
Vấn đề là mình chưa đủ khả năng để chỉnh được nó chứ nếu chỉnh được thì mình đã chỉnh rồi bác ạ. Chả để cái khó chịu ấy lại làm gì....
Và đây là cái mình thử chạy với lisp đó cho ba trường hợp khác nhau khi chọn đối tượng mẫu của cùng một bản vẽ ban đầu.
http://www.mediafire...rw9i7t0s3t95jz9

Đã test trên bản vẽ bác gởi. Kết luận: lisp chạy ngon nhưng kết quả không như ý muốn.
Còn chuyện sửa thì chắc bác tha cho, vì hơi bị khổ.
Ha ha ha!
  • 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.


#12 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 26 April 2012 - 09:06 PM

Explode ename thì không cần "" đằng sau nữa ạ
  • 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


#13 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 26 April 2012 - 09:18 PM

Explode ename thì không cần "" đằng sau nữa ạ

Chắc chắn không Ket ơi? Nó báo lỗi đấy.
  • 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.


#14 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 26 April 2012 - 09:45 PM

Chắc chắn không Ket ơi? Nó báo lỗi đấy.

Hề hề hề,
Chắc vậy rồi bác DoanVanHa ạ.
Mình cũng có hơi nghi ngờ chỗ này vì có cái lisp mình viết khi thêm "" trong lệnh explode cũng bị y như vầy. Khi xóa nó đi thì Ok 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.

#15 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 26 April 2012 - 10:04 PM

Hề hề hề,
Chắc vậy rồi bác DoanVanHa ạ.
Mình cũng có hơi nghi ngờ chỗ này vì có cái lisp mình viết khi thêm "" trong lệnh explode cũng bị y như vầy. Khi xóa nó đi thì Ok bác ạ.

Nó phụ thuộc biến QAFLAGS bác PTB và Ketxu ạ. Khổ thế!
srr 2 bác: vì lúc đầu tôi thử thì OK nhưng sau đó 2 bác thử thì NO nên mới nhớ lại biến QAFLAGS chứ không phải chơi khăm đâu nhé!
  • 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.


#16 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 26 April 2012 - 11:02 PM

Mặc định của qaflags là 0 đấy ạ ^^ Chương trình thay đổi biến hệ thống mà không trả về nguyên bản là rất dở ^^
  • 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


#17 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 27 April 2012 - 09:02 AM

Mặc định của qaflags là 0 đấy ạ ^^ Chương trình thay đổi biến hệ thống mà không trả về nguyên bản là rất dở ^^

Nhân sự rắc rối của lệnh EXPLODE liên quan tới biến QAFLAGS, có vài điều suy ngẫm:
1). Tại sao 1 số biến, như QAFLAGS chẳng hạn, lại không đọc được trong help? Cad giấu nghề chăng, hay do mình dùng bản crack?
2). Chơi với thằng command này nó thường phụ thuộc các biến hệ thống nhiều quá. Đôi lúc hoặc sơ ý hoặc không hiểu tường tận mà dễ gây ra lỗi lisp.
3). Hai thằng VLA- và VLAX- hình như lợi thế hơn command là nó chả thèm quan tâm tới biến nên không bị lỗi.
VD: dùng (command "explode" ent) hay (command "explode" ent "") là do ở giá trị của QAFLAGS.
Trong khi dùng (vla-explode obj) hoặc (vlax-invoke obj 'Explode) thì bất chấp giá trị của QAFLAGS.
Vài lời tán gẩu. Bác nào biết sâu sắc hơn thì cho thêm vài ý kiến để học tập.
  • 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.


#18 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 27 April 2012 - 09:13 AM

Một số biến có từ các đời cũ R11,12... Cad help không liệt kê chứ không phải giấu nghề đâu bác ạ ^^
Vài cái như _LINFO, ENTMODS,GLOBCHECK .... có công dụng rất hay mà cũng không có đó thôi ^^
  • 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