Đến nội dung


Hình ảnh
- - - - -

nhờ xem lỗi lisp đánh cao độ


  • Please log in to reply
3 replies to this topic

#1 almodeus

almodeus

    biết vẽ arc

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

Đã gửi 18 February 2011 - 04:41 PM

mình có lisp cao độ của diễn đàn nhưng không hiểu sao lúc được lúc không
(defun c:ccd(/ tlv blm blname dmo cdm cd dm cdmi dmoc)
(setvar "attreq" 1)
(setvar "cmdecho" 0)
(setq oldim (getvar "DimZin"))
(setvar "Dimzin" 0)
(setq tlv (/ 1 (getreal "\n Nhap ti le ve : 1/")))
(setq blm (entget(car(entsel "\n Pick chon Block mau :"))))
(setq blname (cdr(assoc 2 blm)))
(setq TLX (cdr(assoc 41 blm)))
(setq TLY (cdr(assoc 42 blm)))
(setq dmo (getpoint "\n Pick diem moc : "))

(setq cdm (getreal "\n Nhap cao do cua diem moc :"))
(if (= cdm 0) (setq cd (strcat "%%p" (rtos cdm 2 3))))
(if (> cdm 0) (setq cd (strcat "+" (rtos cdm 2 3))))
(if (< cdm 0) (setq cd (rtos cdm 2 3)))
(command "insert" blname dmo TLX TLY "0" cd)
(setq dmoc dmo)
(while (setq dm (getpoint dmoc "\n Pick diem tiep theo :"))
(setq cdmi (* (- (cadr dm) cdm (cadr dmo)) tlv))
(if (= cdmi 0) (setq cdi (strcat "%%p" (rtos cdmi 2 3))))
(if (> cdmi 0) (setq cdi (strcat "+" (rtos cdmi 2 3))))
(if (< cdmi 0) (setq cdi (rtos cdmi 2 3)))
(command "insert" blname dm TLX TLY "0" cdi)
(setq dmoc dm)
)

(setvar "Dimzin" oldim)
(princ)
)

đây là file cad mẫu, cùng là hai block nhưng cái thì được cái thì bị lỗi nó cứ cho ra cot O và bị quay một góc nhỏ
xuất hiện cái dòng thế này :
Pick diem tiep theo :*Cancel*
; error: Function cancelled
My link
  • 0

#2 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 18 February 2011 - 05:06 PM

Block đấy của bạn có vấn đề. Mình tạo block mới vẫn làm ngon lành mà tạo Block khác đi bạn à. Bạn vào property scale X, Y, Z của 1 Block thay đổi được hết 1 block chỉ cho nhập scale X đó là 2 điểm khác nhau ở 2 block bạn đưa lên. Khi bạn tạo Block mà thay đổi được cả 3 scale thì lsp trên okie.
  • 1
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#3 almodeus

almodeus

    biết vẽ arc

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

Đã gửi 18 February 2011 - 05:33 PM

cám ơn bạn...thì ra là block mình để chế độ scale uniform nên bị lỗi...ah bạn cho mình hỏi là làm sau bỏ các con số 0.000 phía sau dấu chấm không
  • 0

#4 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 21 February 2011 - 07:49 AM

Đây bạn ạ bạn chỉnh số thập phân sau dấu phẩy ở đây:
(if (= cdm 0) (setq cd (strcat "%%p" (rtos cdm 2 3))))
(if (> cdm 0) (setq cd (strcat "+" (rtos cdm 2 3))))
(if (< cdm 0) (setq cd (rtos cdm 2 3)))
(rtos cdm 2 3) Bạn chỉ cần thay đổi số 3 bằng số tương ứng sau dấu phẩy. VD bạn lấy 2 số sau dấu phẩy thì sửa thành (rtos cdm 2 2), Nếu không có số nào thì (rtos cdm 2 0). Vậy thôi. Chúc bạn sửa được theo ý muốn.
  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.