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  
tuan138

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

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

tuan138    0

(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

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
Doan Van Ha    2.676

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.

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
tuan138    0

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.com/forum/index.php?showtopic=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

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
phamthanhbinh    3.123
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ề,

  • 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
Doan Van Ha    2.676

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 © 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)

  • 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
phamthanhbinh    3.123

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

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

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ứ

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
Doan Van Ha    2.676

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!

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
phamthanhbinh    3.123

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.com/?rw9i7t0s3t95jz9

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
Doan Van Ha    2.676

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!

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
phamthanhbinh    3.123

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

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
Doan Van Ha    2.676

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é!

  • 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
ketxu    2.651

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ở ^^

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
Doan Van Ha    2.676

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.

  • 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
ketxu    2.651

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 ^^

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  

×