Đến nội dung


Hình ảnh
- - - - -

Nhờ sửa lisp ctn


  • Please log in to reply
1 reply to this topic

#1 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 18 April 2011 - 07:44 PM

Em có đoạn mã lisp nội suy ctn copy trên diễn đàn.
Sau khi chỉnh sửa lisp như sau nhưng không cho đúng kết quả nhờ các bác sửa giúp.
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=13203&st=220
(defun DXF (code elist) (cdr (assoc code elist)))
(prompt"\n[cmd : CTN] - GHI CAO DO TRAC NGANG\n")
(defun c:ctn ()
(command "Undo" "BEGIN")
(setq CMLAST (getvar "cmdecho"))
(setq OSLAST (getvar "OSMODE"))
(setq DZ (getvar "DIMZIN"))
(setq OT (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 0)
(setvar "cmdecho" 0)
(command "osmode" 1)
(setq pt0 (osnap (getpoint "Diem tim TN tu nhien") "end")) (print)
(setq y0 (cadr pt0))
(setq ed (entget (car (entsel "\nChon text cao do tim: "))))
(setq H0 (read (DXF 1 ed)))
(command "osmode" 4335)
(setq pt (getpoint "\nDiem tra cao do: "))
(While (/= pt nil)
(setq y (- (cadr pt) y0 (- H0)) out 0)
(while (= out 0)
(setq res (entsel "\n Chon text ghi cao do"))
(if res
(progn
(setvar "dimzin" 0)
(entmod (subst (cons 1 (rtos y 2 2)) (assoc 1 (entget (car res))) (entget (car res))))
(setq out 1)
);progn
);if
);while
(setvar "DIMZIN" DZ)
(command "osmode" 4335)
(setq pt (getpoint "\nDiem chen: "))
);while
(setvar "OSMODE" OSLAST)
(setvar "ORTHOMODE" OT)
(setvar "cmdecho" CMLAST)
(prompt"\n[GHI CAO DO TREN TRAC NGANG] by Thaistreetz - huuthais@yahoo.com\n")
(command "Undo" "End")
(princ)
);end
;---------------------------------------------------------------
Đoạn lisp sửa: cho tỷ lệ bản vẽ vào để tìm cao độ:
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=13203&st=220
(defun DXF (code elist) (cdr (assoc code elist)))
(prompt"\n[cmd : CTN] - GHI CAO DO TRAC NGANG\n")
(defun c:ctn ()
(command "Undo" "BEGIN")
(if (= ty nil) (setq ty 1));
(setq ty1 (getreal (strcat "\nTy le theo phuong Y <1/"(rtos ty 2 2)">: 1/")))
(if ty1 (setq ty ty1))
(setq CMLAST (getvar "cmdecho"))
(setq OSLAST (getvar "OSMODE"))
(setq DZ (getvar "DIMZIN"))
(setq OT (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 0)
(setvar "cmdecho" 0)
(command "osmode" 1)
(setq pt0 (osnap (getpoint "Diem tim TN tu nhien") "end")) (print)
(setq y0 (cadr pt0))
(setq ed (entget (car (entsel "\nChon text cao do tim: "))))
(setq H0 (read (DXF 1 ed)))
(command "osmode" 4335)
(setq pt (getpoint "\nDiem tra cao do: "))
(While (/= pt nil)
(setq y (- (cadr pt) y0 (- H0)) out 0)
(while (= out 0)
(setq res (entsel "\n Chon text ghi cao do"))
(if res
(progn
(setvar "dimzin" 0)
(entmod (subst (cons 1 (rtos *( y ty) 2 2)) (assoc 1 (entget (car res))) (entget (car res)))):
(setq out 1)
);progn
);if
);while
(setvar "DIMZIN" DZ)
(command "osmode" 4335)
(setq pt (getpoint "\nDiem chen: "))
);while
(setvar "OSMODE" OSLAST)
(setvar "ORTHOMODE" OT)
(setvar "cmdecho" CMLAST)
(prompt"\n[GHI CAO DO TREN TRAC NGANG] by Thaistreetz - huuthais@yahoo.com\n")
(command "Undo" "End")
(princ)
);end
;---------------------------------------------------------------
Mong các bác xem giúp
Thân.
  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 18 April 2011 - 10:18 PM

Bạn k gửi kèm file test, mọi người hok trong chuyên ngành của bạn khó mà hình dung lắm. Hơn nữa, mình chạy cả 2 đều báo lỗi cả ^^
  • 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