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  
mrphamnha

Thắc mắc ghi cao độ của bác Tue_NV

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

mrphamnha    0
; free lisp from cadviet.com


 

 

(defun c:dcd(/ tlv blm blname dmo cdm cd dm cdmi dmoc bl)

 

(setvar "attreq" 1)

 

(setvar "cmdecho" 0)

 

(setq oldim (getvar "DimZin"))

 

(setvar "Dimzin" 0)

 

(setq tlv (/ 1 (getreal "\n Nhap ti le ve : 1/")))

 

(setq bl (car(entsel "\n Pick chon Block mau / Text mau :")))

 

(setq blm (entget bl))

 

(setq dmo (getpoint "\n Pick diem moc : "))

 

 

 

(setq cdm (getreal "\n Nhap cao do cua diem moc \ Enter pick text cao do : "))

 

(if (null cdm) (setq cdm (atof (cdr(assoc 1 (entget(car (entsel "pick text cao do : ")))))))  )

 

(if cdm (progn

 

(if (= cdm 0) (setq cd (strcat "%%p" (rtos cdm 2 2))))

 

(if (> cdm 0) (setq cd (strcat "+" (rtos cdm 2 2))))

 

(if (< cdm 0) (setq cd (rtos cdm 2 2)))

 

(command "copy" bl "" "_non" (cdr(assoc 10 blm)) "_non" dmo)

 

(if (and (wcmatch (cdr(assoc 0 (entget (entlast)))) "INSERT") (= (cdr(assoc 66 (entget (entlast)))) 1))

 

     (setq el (entget (entnext (entlast)) )))

 

(if (wcmatch (cdr(assoc 0 (entget (entlast)))) "TEXT") (setq el (entget (entlast))) )

 

(entmod (subst (cons 1 cd) (assoc 1 el) el))

 

(setq dmoc dmo)

 

(while (setq dm (getpoint dmoc "\n Pick diem tiep theo :"))

 

(if (> (cadr dm) (cadr dmo))  (setq cdmi (+ (* (- (cadr dm) (cadr dmo)) tlv) cdm) ) )

 

(if (<= (cadr dm) (cadr dmo))  (setq cdmi (- cdm (* (- (cadr dmo) (cadr dm)) tlv) ) ) )

 

(if (= cdmi 0) (setq cdi (strcat "%%p" (rtos cdmi 2 2))))

 

(if (> cdmi 0) (setq cdi (strcat "+" (rtos cdmi 2 2))))

 

(if (< cdmi 0) (setq cdi (rtos cdmi 2 2)))

 

(command "copy" bl "" "_non" (cdr(assoc 10 blm)) "_non" dm)

 

(if (and (wcmatch (cdr(assoc 0 (entget (entlast)))) "INSERT") (= (cdr(assoc 66 (entget (entlast)))) 1))

 

     (setq el (entget (entnext (entlast)) )))

 

(if (wcmatch (cdr(assoc 0 (entget (entlast)))) "TEXT") (setq el (entget (entlast))) )

 

(entmod (subst (cons 1 cdi) (assoc 1 el) el))

 

(setq dmoc dm)

 

)

 

(setvar "Dimzin" oldim)

 

))

 

(princ)

 

)

 


sau khi dùng lệnh như này : 


Command: dcd

 

 Nhap ti le ve : 1/200

 

 Pick chon Block mau / Text mau :

 Pick diem moc :

 Nhap cao do cua diem moc  Enter pick text cao do : 46

 

 Pick diem tiep theo :

 Pick diem tiep theo :*Cancel*

; error: An error has occurred inside the *error* functiontoo many arguments

 

Bác nào cho em hỏi lỗi trên là như nào, em click vào các vị trí như trong bản vẽ, em đã chuyển hệ trục tọa độ về vị trí điểm 1( cao trình +46) rồi. nhưng sau khi click lên vị trí 2 ( đúng ra là +48,57) tại sao nó lại nhảy lên vị trí 3 và 4 mà vẫn không đúng cao trình .

Cảm ơn cả nhà nhiều

Chỉnh sửa theo mrphamnha

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  

×