Đến nội dung


Hình ảnh
- - - - -

[Hỏi] Giúp mình sửa lỗi lisp này:


  • Please log in to reply
4 replies to this topic

#1 tom_xp

tom_xp

    Chưa sử dụng CAD

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

Đã gửi 15 December 2012 - 03:15 PM

Mô tả lsp: Lisp để scale nhanh các đối tượng với 1 tỷ lệ cho trước.

Mình dùng lisp này từ 2004 trên CAD 2004 ngon lành, nhưng chuyển sang dùng CAD 2008 thì bị lỗi khi chọn trước đối tượng. Có lẽ các lệnh trên CAD 2008 thay đổi (ý nghĩa hoặc cách sử dụng) chăng?

Các bạn giúp mình với. Tks

(defun C:SETQSC ()
(SETSCALENUMBER)
(princ)
) ;_ Eof defun

(defun SETSCALENUMBER ()
(while (<= (setq SCALENUM (getreal "\nSet ratio for Quick Scale: ")) 0)
(if (<= SCALENUM 0)
(princ "\nThe ratio must great than zero. ")
) ;_ Eof if
) ;_ Eof while
) ;_ Eof defun

(defun C:QSC (/ SS PT) ;_Quick scale
(if (<= SCALENUM 0)
(SETSCALENUMBER)
) ;_ Eof if
(princ (strcat "Scale Object with ratio = " (rtos SCALENUM 2) "\n"))
(setq SS (cadr (ssgetfirst)))
(princ)
(if (= NIL SS)
(progn
(princ "Select Object to scale: ")
(while (= NIL (setq SS (ssget))))
(princ (strcat (itoa (sslength SS)) " Object(s) selected. "))
) ;_ Eof progn
) ;_ Eof if
(setq PT (getpoint "\nSelect a base point for Scale: "))
(command ".SCALE" SS "" PT SCALENUM)
(princ)
) ;_ Eof defun


  • 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 15 December 2012 - 03:37 PM

Lisp không lỗi.
Bạn nhập vào command xem sao:
PICKFIRST
1
  • 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 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 15 December 2012 - 03:47 PM

Bạn k post thông báo lỗi, n đọc dòng xode thấy hình như nó chì có chức năng ghi nhớ tỉ lệ. scale và rất nhiều lệnh khác của cad có chức năng này, bạn cần lisp làm chi
  • 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


#4 tom_xp

tom_xp

    Chưa sử dụng CAD

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

Đã gửi 15 December 2012 - 04:14 PM

@ Doan Van Ha: Mình thử rồi vẫn ko được.


Bạn k post thông báo lỗi, n đọc dòng xode thấy hình như nó chì có chức năng ghi nhớ tỉ lệ. scale và rất nhiều lệnh khác của cad có chức năng này, bạn cần lisp làm chi

Dùng LSP mình thấy tiện hơn.

A` quên: chỉ một số file CAd mới bị lỗi thôi, còn mở 1 file CAD mới thì ko bị.
Mình muốn hỏi cụ thể là:
1. Lệnh (setq SS (cadr (ssgetfirst))) trong 2008 có thay đổi gì so với version 2004 ko? vì các file LSP cũ của mình hay bị lỗi với lệnh này.
2. Biến hệ thống nào liên quan đến lệnh ssgetfirst?

Trình LSP của mình có hạn, lại ít thời gian cập nhật - mong các bạn thông cảm :)
  • 0

#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 15 December 2012 - 04:23 PM

1). Rất có thể bạn đang dùng song song nhiều lisp nên lỗi ở chỗ SS.
2). Lisp này làm 1 công việc mà cad đã làm được rồi.
3). Có mỗi việc post cái lỗi ấy lên mà bạn cũng muốn giấu chă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.