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  
bach1212

[Nhờ chỉnh sửa] Chế độ bắt điểm trong lisp

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

bach1212    2

: Ha Van Khanh 3/2003
;
; * Chuong trinh duoc lap bang ngon ngu AUTOLISP.
; ------------------------------------------------------------------------------
(vmon)
(defun C:bang (/ 1x 1y a1 2x 2y a2 3x 3y a3 b p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14  p15 p16x p16y p16 p17x p17y p17)
(setvar "cmdecho" 0) 
(initget 7)
(setq osm (getvar "osmode" ))
(setvar "osmode" 0)
(command "-Style" "hoatbif" "hoatbif " "2.0" "" "" "" "" "")
(command "-Layer" "n" "Text" "c" "4" "Text" "")
 (setq p1 (getpoint "\nChon diem dat bang thong ke :"))
 (setq S (getint "\nSo diem can tinh toa do :"))
(setq p2 (polar p1 (/ (* Pi 3) 2) (+ 16 (* 8 S))))
(setq p3 (polar p2 0 91))
(setq p4 (polar p1 0 91))
(setq p5 (polar p1 0 21))
(setq p6 (polar p2 0 21))
(setq p7 (polar p5 0 35))
(setq p8 (polar p6 0 35))
(setq p9 (polar p5 (/ (* Pi 3) 2) 8))
(setq p10 (polar p4 (/ (* Pi 3) 2) 8))
(setq p12 (polar p9 0 35))
(setq p11 (polar p9 0 -10.5))
(setq p13 (polar p1 (/ (* Pi 3) 2) 16))
(setq p14 (polar p4 (/ (* Pi 3) 2) 16))
(setq p15 (polar p7 (/ (* pi 3 ) 2) 4))
(setq p16x (/ (+ (car p5) (car p7)) 2))
(setq p16y (/ (+ (cadr p9) (cadr p13)) 2))
(setq p17x (/ (+ (car p4) (car p7)) 2))
(setq p17y (/ (+ (cadr p9) (cadr p13)) 2))
(setq p16 (list p16x p16y))
(setq p17 (list p17x p17y))
(command "Plinewid" "0.5")
(command "Pline" p1 p2 p3 p4 p1 "")
(command "Line" p5 p6 "")
(command "Line" p12 p8 "")
(command "Line" p9 p10 "")
(command "Line" p13 p14 "")
(command "Array" "l" "" "Rec" S "1" "-8")
(command "text" "j" "mc"  p11 "0"  "Tªn ga"  )
(command "text" "j" "mc"  p15 "0"  "To¹ ®é" )
(command "text" "j" "mc"  p16 "0"  "X" )
(command "text" "j" "mc"  p17 "0"  "Y" )
(setvar "osmode" 1)
;-------------------------------------------------
; PhÇn sö lý ch÷
(setq b 0)
(while (< b s )
(setq b (+ b 1))
(setq td (getstring "\Nhap ten diem lay toa do : "))
(if (or (= td "") (= td " "))
(setq td (cdr (assoc 1 (entget (car (entsel "\n Chon text san co tren ban ve"))))))
)
(setq tp (getpoint "\n Chon diem : "))
(setq tx (rtos (car tp) 2 4 ))
(setq ty (rtos (cadr tp) 2 4 ))
(setq 1x (/ (+ (car p1) (car p5)) 2))
(setq 1y (- (- (cadr p11) 4) (* 8 B)))
(setq a1 (list 1x 1y))
(setq 2x (/ (+ (car p5) (car p7)) 2))
(setq 2y (- (cadr p16) (* 8 B)))
(setq a2 (list 2x 2y))
(setq 3x (/ (+(car p7) (car p4)) 2))
(setq 3y (- (cadr p17) (* 8 B)))
(setq a3 (list 3x 3y))
(command "text" "j" "mc"  a1  "0"  td "" )
(command "text" "j" "mc"  a3  "0"  tx "" )
(command "text" "j" "mc"  a2  "0"  ty "" )
)
)

 

 

Lisp trên để lấy tọa độ của 1 điểm.

Cho e hỏi dòng lệnh nào quy định chế độ bắt điểm của lisp trên ah?

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
Doan Van Ha    2.678

Trong 1 lisp, thường có 3 dòng liên quan đến osnap:

1). Lấy osnap hiện thời:(setq osm (getvar "osmode" ))

2). Đăt osnap mới:(setvar "osmode" 0)

3). Trả lại osnap cũ:(setvar "osmode" osm)

  • Vote tăng 1

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
bach1212    2

(setvar "osmode" 1)

muốn dòng này chọn chế độ bắt điểm là all thì thay số 1 bằng bao nhiu ah?

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
ketxu    2.652

Bạn đúng là k có cảm quan nghệ thuật lisp :) Bác ĐVH nói rõ dòng lấy osnap hiện thời rồi , sao không thử đặt chế độ mình ưng ý rồi thực hiện xem nó là số mấy ?

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
bach1212    2

Bạn đúng là k có cảm quan nghệ thuật lisp :) Bác ĐVH nói rõ dòng lấy osnap hiện thời rồi , sao không thử đặt chế độ mình ưng ý rồi thực hiện xem nó là số mấy ?

iem thử mấy số nhưng hok được số nào cho bắt all bác ah. hjj :D Dùng thì được chứ sáng tác e yếu lém ah.

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
kncam    99

iem thử mấy số nhưng hok được số nào cho bắt all bác ah. hjj :D Dùng thì được chứ sáng tác e yếu lém ah.

Sau khi hiệu chỉnh các loại bắt dính "yêu thích", bậu nhập trực tiếp trên dòng command tên biến OSMODE thì sẽ thấy giá trị tổng của nó.

VD: nhập OSMODE -> OSMODE<511>: -> có các osnap sau END,MID,CEN,NOD,QUA,INT,INS.PER,TAN.

  • Vote tăng 1

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

iem thử mấy số nhưng hok được số nào cho bắt all bác ah. hjj :D Dùng thì được chứ sáng tác e yếu lém ah.

Bạn lấy tổng của tất cả các chế độ bắt điểm cộng lại là được chế độ bắt điểm all

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  

×