Đến nội dung


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

Viết Lisp theo yêu cầu


  • Chủ đề bị khóa Chủ đề bị khóa
2780 replies to this topic

#1301 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 18 November 2008 - 07:38 AM

chào các bạn, mong các bạn jup đỡ. mình cần 1 lisp có thể làm như sau : mình hay phải sửa bản vẽ của dân kiến trúc, họ hay vẽ mặt cắt với cỡ chữ rất to.khi mình cho nhỏ lại thì các chữ cách nhau rất xa (6 6) và phải chỉnh cho gan lại (6 6) (có rất nhiều mặt cắt => sửa rất nhiều lần ) các bạn có thể cho mình 1 lisp mỗi khi click vào mặt cắt ( ví dụ 6 6 ) nó sẽ tự cho gần lại với khoảng cách do mình chọn đuợc kô nếu làm được với muti nữa thì tốt wa, cảm ơn các bạn rất nhiều. hình ảnh minh hoạ
http://www.cadviet.c...untitled_85.jpg

Đầu tiên, có thể bạn sử dụng lệnh Tjust để chuyển một chữ căn lề trái, một chữ căn lề phải ( mà không bị thay đổi vị trí của text) theo bạn Nataca. Hoặc có thể bạn không dùng cũng được. sau này bạn move ra một chút
. Và bạn sử dụng đoạn Code của mình để thực hiện ý muốn của mình.
Dưới đây là Code :
;;;;;;
(defun C:SCC ()
(prompt "Ban chon doi tuong text :")
(princ "\nSelect object :")
(setq obj (ssget))
(setq c1 (getdist "Cho khoang cach 2 text dau :")) (terpri)
(setq c2 (getdist "Cho khoang cach 2 text cuoi :")) (terpri)
(setq base (getpoint "Diem giua 2 text :")) (terpri)

(setq TL (/ C2 C1))
(command "scale" obj "" base TL)
(tt)
)







;;; --------------------------------------------------------------------------
;;; Thay doi chieu cao TEXT:
(DEFUN TT (/ G A B C D E F)
(SETVAR "CMDECHO" 0)

(INITGET 1 "S H ")
(SETQ G (STRCASE (SUBSTR (getkword "Height/