Đến nội dung


Hình ảnh
- - - - -

[yêu cầu] Lisp scale giá trị nhập vào khi vẽ đường DIM ?


  • Please log in to reply
4 replies to this topic

#1 girl

girl

    biết vẽ spline

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

Đã gửi 27 July 2012 - 03:37 AM

Em đang rất cần lisp làm công việc sau:
Lisp sẽ bao gồm 2 lệnh khác nhau hỗ trợ cho nhau,
Lệnh 1: Nhập tỷ lệ cho việc Scale thông số đầu vào (giả sử là m)
Lệnh 2: Khi ta đánh lệnh DIMALIGNED hoặc dimlinear và pick điểm thứ nhất và nhập khoảng cách vào giả sử là 100
thì lisp sẽ tự động vẽ 1 DIM với chiều dài thực (khi ta đo bằng Di trên bản vẽ ) là 100/m chứ không phải là 100 mà ta nhập vào.
Em đã tìm trên diễn đàn các lisp tương tự để dùng nhưng không thể tìm được. Vậy em mong các anh trên diễn đàn giúp đỡ em. Em xin chân thành cảm ơn !
  • 0

#2 mathan

mathan

    biết vẽ rectang

  • Members
  • PipPip
  • 83 Bài viết
Điểm đánh giá: 57 (tàm tạm)

Đã gửi 28 July 2012 - 08:52 AM

Bạn dùng thử
Lệnh 1: KB để khai báo tỷ lệ
Lệnh 2: DAL1 để thực hiện dimaligned
Còn về dimlinear thì mình chưa rõ ý bạn lắm khi nhập vào khoảng cách thì nó sẽ theo phương nào đứng, ngang hay xiên :D
Bạn rõ ràng vấn đề để nếu có thể mình sẽ giúp bạn

;; Free lisp code from CADViet - Edit by mathan
(defun c:kb ()
(setq tyle (getreal"\nNhap ty le :"))
(setq tyle (/ 1 tyle))
)
;;;;
(defun c:dal1 ()
(setq diem1 (getpoint "\nChon diem dau.."))
(setq diem1x (car diem1))
(setq diem1y (cadr diem1))
(setq ktra "NOT OK")
(while (= ktra "NOT OK")
(setq diem2 (getpoint "\nChon diem thu 2.."))
(setq diem2x (car diem2))
(setq diem2y (cadr diem2))
(command "LINE" diem1 diem2 "")
(setq ktra1 (getstring "\nBan dong y huong nhu vay khong [C/K] "))
(if (or (= ktra1 "k") (= ktra "K") )
(progn
(setq ktra "NOT OK")
(command "ERASE" "last" "")
)
(progn
(setq ktra "OK")
(command "ERASE" "last" "")
(setq kc (getreal "\nNhap khoang cach dim thuc: "))
(setq kc (* kc tyle))
(setq kcg (distance diem1 diem2))
(setq boiso (/ kc kcg))
(setq diem3 (list (+ diem1x (* boiso (- diem2x diem1x))) (+ diem1y (* boiso (- diem2y diem1y))) 0))
(command "_dimaligned" diem1 diem3 pause)


)
);; end if

);; end while
)

  • 0
-----------
Hình đã gửi Hãy chia sẻ để thấy có được nhiều hơn điều mình muốn!
Best regard,

#3 girl

girl

    biết vẽ spline

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

Đã gửi 29 July 2012 - 07:50 PM

Cảm ơn anh Mathan. Anh nói em mới nắm được vấn đề hơn. Đúng là cái lisp này chỉ áp dụng được cho lệnh dimlinear, khoảng cách nhập vào là tính theo phương Đứng hoặc ngang về phía mà mình dê con trỏ sang Phải, trái, trên, dưới của điểm đầu ta Pick. Còn cái Dal1 kia thì đúng là khi a viết ra rồi em mới hiểu được hơn vấn đề. Anh viết giúp em cái lệnh dimlinear thôi ạ ! Cảm ơn anh
  • 0

#4 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 29 July 2012 - 07:55 PM

Bạn tìm công cụ Autoscale (hook keyboard) của a PhanTHanhTu về dùng nhé
  • 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


#5 girl

girl

    biết vẽ spline

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

Đã gửi 30 July 2012 - 03:11 AM

Cảm ơn anh Ketxu đã góp ý. Cái Autoscale của PhanthanhTu em có nghe nói trên diễn đàn. Nhưng em đã tìm kiếm khắp diễn đàn và google mà không thấy bài nào post lisp đó của anh Tú ? Anh nào có lisp của anh Tú thì post lên cho mọi người được ko ạ ?
  • 0