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  
girl

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

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

girl    5

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 !

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
mathan    57

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
)

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
girl    5

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

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
girl    5

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

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  

×