Đến nội dung


Hình ảnh
- - - - -

Lisp vẽ nhưng thực hiện không đúng


  • Please log in to reply
2 replies to this topic

#1 hatieu

hatieu

    biết vẽ pline

  • Advance Member
  • PipPip
  • 67 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 10 January 2011 - 10:13 AM

(defun dtr (a)
(* pi (/ a 180.0)))
;==============================================================================
(defun c:hcn (/ *siz* pt dpt siz e1 e2 dx dy w h p0 p1 p2 p3 txt e4 e5 e6 e7 e8 ten1)
(graphscr)
(reset)
;==============================================================================
;(setq siz (cond (siz) (40)))
;(setq oldsiz siz)  
;(setq siz (getdist(strcat "\nNhap ty le ban ve: <" (rtos oldsiz 2 3) "> :")))
    ;(if (null siz) (setq siz oldsiz))

(or *siz* (setq *siz* (* (getvar "dimtxt")(getvar "dimscale"))))
(initget 6)
(setq siz (getreal (strcat "\nNhap ty le ban ve <" (rtos *siz*) "> :")))
(if siz (setq *siz* siz) (setq siz *siz*))

;==============================================================================
(command "layer" "m" "glass" "c" "4" "" "")
(command "layer" "s" "glass" "")
(setq pt (getpoint "\nStarting corner:"))
(setq dpt (getcorner pt "\nDiagonal corner:"))
(setq dx (abs (- (car dpt) (car pt))))
(setq dy (abs (- (cadr dpt) (cadr pt))))
(setq w (- dx 15))
(setq h (- dy 15))
(setq txt (* siz 3))
(setvar "ltscale" (* siz 2))
(setq p0 (polar pt (dtr 0) (/ dx 2)))
(setq p1 (polar p0 (dtr 90) (/ dy 4)))
(setq p2 (polar p1 (dtr 180) txt))
(setq p3 (polar p1 (dtr 0) txt))
(command "pline" pt ".x" dpt ".y" pt dpt ".x" pt ".y" dpt "c")
(setq e1 (entlast))
(command "offset" 7.5 e1 p1 "")
(setq e2 (entlast))
(command "offset" 6 e2 p1 "")
(setq e7 (entlast))
(command "offset" 6 e7 p1 "")
(setq e8 (entlast))
(prompt "_.change")
(command "_.change" e7 e8 "" "p" "c" "8" "lt" "dashed2" "")
(command "erase" e1 "")
;==============================================================================
(command "layer" "m" "text" "c" "7" "" "")
(command "layer" "s" "text" "" "")
(command "layer" "s" "text" "")
(command "text" "j" "mr" p2 txt 0 (rtos w 2 1) )
(setq e4 (entlast))
(command "layer" "s" "text" "")
(command "text" "j" "ml" p3 txt 0 (rtos h 2 1) )
(setq e5 (entlast))
(command "layer" "s" "text" "")
(command "text" "j" "mc" p1 txt 0 "X" )
(setq e6 (entlast))
(setq ten1 (strcat (rtos w 2 1) " " "X" " " (rtos h 2 1)))
(if (not(tblsearch "block" ten1) )
(command "_.BLOCK" ten1 p1 e2 e4 e5 e6 e7 e8 "" "_.INSERT" ten1 p1 1 1 0)
(progn (command "_.BLOCK" ten1 "y" p1 e2 e4 e5 e6 e7 e8 "" "_.INSERT" ten1 p1 1 1 0)
(alert "\nDa ghi de len block trung ten")
)
)
(reset1)
(princ)
)
;==============================================================================
(defun reset()
(setq old_lay (getvar "clayer"))
(setq old_txt (getvar "textstyle"))
(setvar "plinewid" 0.0)
(SETVAR "ORTHOMODE" 1)
(SETVAR "POLARMODE" 0)
(command "style" "romanc" "romanc" "0" "" "" "" "" "")
(setvar "osmode" 15359)
(setvar "textstyle" "romanc")
)
;==============================================================================
(defun reset1()
(setvar "osmode" 15359)
(setvar "plinewid" 0.0)
(setvar "textstyle" old_txt)
(command "layer" "s" old_lay "")
)
Lisp của em thực hiện vẽ như hình bên dưới
Hình đã gửi
Nhưng có lúc thực hiện nó lại thành hình như bên dưới không đúng vị trí chèn text
Hình đã gửi
hoặc
Hình đã gửi
Không biết là nguyên nhân do đâu lúc thì thực hiện chính xác lúc thì không.Nhờ các bác sửa dùm.
  • 0
Công ty cổ phần đầu tư và xây dựng AGA
Chuyên tư vấn, cung cấp, thi công hệ vách dựng nhôm kính khổ lớn, cửa nhôm kính,
kính cường lực, vách ngăn, lan can, cầu thang kinh, lam nhôm chăn nắng.
Hot: 0984.985.119

#2 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 10 January 2011 - 10:23 AM

Nhưng có lúc thực hiện nó lại thành hình như bên dưới không đúng vị trí chèn text
Không biết là nguyên nhân do đâu lúc thì thực hiện chính xác lúc thì không.Nhờ các bác sửa dùm.

Hàm (Reset) -> Bạn chưa tắt chế độ bắt điểm
(defun reset()
(setq old_lay (getvar "clayer"))
(setq old_txt (getvar "textstyle"))
(setvar "plinewid" 0.0)
(SETVAR "ORTHOMODE" 1)
(SETVAR "POLARMODE" 0)
(command "style" "romanc" "romanc" "0" "" "" "" "" "")
(setvar "osmode" 15359)
(setvar "textstyle" "romanc")
)


(defun c:hcn (/ *siz* pt dpt siz e1 e2 dx dy w h p0 p1 p2 p3 txt e4 e5 e6 e7 e8 ten1)
(graphscr)
(reset)
;==============================================================================
...........
  • 1

#3 hatieu

hatieu

    biết vẽ pline

  • Advance Member
  • PipPip
  • 67 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 10 January 2011 - 12:37 PM

Hàm (Reset) -> Bạn chưa tắt chế độ bắt điểm
(defun reset()
(setq old_lay (getvar "clayer"))
(setq old_txt (getvar "textstyle"))
(setvar "plinewid" 0.0)
(SETVAR "ORTHOMODE" 1)
(SETVAR "POLARMODE" 0)
(command "style" "romanc" "romanc" "0" "" "" "" "" "")
(setvar "osmode" 15359)
(setvar "textstyle" "romanc")
)
(defun c:hcn (/ *siz* pt dpt siz e1 e2 dx dy w h p0 p1 p2 p3 txt e4 e5 e6 e7 e8 ten1)
(graphscr)
(reset)
;==============================================================================
...........

Thanksss!!!
Em làm được rùi (setvar "osmode" 31743) ;tắt truy bắt điểm
  • 0
Công ty cổ phần đầu tư và xây dựng AGA
Chuyên tư vấn, cung cấp, thi công hệ vách dựng nhôm kính khổ lớn, cửa nhôm kính,
kính cường lực, vách ngăn, lan can, cầu thang kinh, lam nhôm chăn nắng.
Hot: 0984.985.119