Đến nội dung


Hình ảnh
- - - - -

Cần lisp đo khoảng cách và góc nghiêng đoạn thẳng


  • Please log in to reply
8 replies to this topic

#1 Updatelisp

Updatelisp

    biết vẽ pline

  • Members
  • PipPip
  • 68 Bài viết
Điểm đánh giá: 8 (bình thường)

Đã gửi 21 April 2008 - 11:03 AM

Trên diễn đàn mình có đọc được đoạn lisp FL.lsp đo chiều dài và góc nghiêng đoạn thẳng nhưng hình như chiều dài là đơn vị inch thì phải. Vậy có lisp nào ghi đơn vị là cm,m,mm và giá trị ghi phải có đơn vị ở sau (ví dụ 20cm chẳng hạn )?Theo mình thì lisp FL.lsp khá hay nhưng còn gặp vướn mắt như vậy!
  • 0
Thân Z707!
Không nên hiểu và cũng không nên,không nên hiểu!

#2 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 21 April 2008 - 12:06 PM

Trên diễn đàn mình có đọc được đoạn lisp FL.lsp đo chiều dài và góc nghiêng đoạn thẳng nhưng hình như chiều dài là đơn vị inch thì phải. Vậy có lisp nào ghi đơn vị là cm,m,mm và giá trị ghi phải có đơn vị ở sau (ví dụ 20cm chẳng hạn )?Theo mình thì lisp FL.lsp khá hay nhưng còn gặp vướn mắt như vậy!

Cụ thể, bạn muốn gì?
  • 0

#3 Updatelisp

Updatelisp

    biết vẽ pline

  • Members
  • PipPip
  • 68 Bài viết
Điểm đánh giá: 8 (bình thường)

Đã gửi 22 April 2008 - 02:12 PM

Cụ thể, bạn muốn gì?

Tức mình muốn lisp có thể ghi chiều dài đoạn thẳng theo đơn vị bản vẽ và góc nghiêng của đoạn thẳng đó
  • 0
Thân Z707!
Không nên hiểu và cũng không nên,không nên hiểu!

#4 Updatelisp

Updatelisp

    biết vẽ pline

  • Members
  • PipPip
  • 68 Bài viết
Điểm đánh giá: 8 (bình thường)

Đã gửi 26 April 2008 - 02:35 PM

Tức mình muốn lisp có thể ghi chiều dài đoạn thẳng theo đơn vị bản vẽ và góc nghiêng của đoạn thẳng đó

Mình đng rất cần Lisp ghi chiều dài đoạn thẳng theo đơn vị bản vẽ và góc nghiêng của đoạn thẳng đó. Mong các pro chỉ giup!!
  • 0
Thân Z707!
Không nên hiểu và cũng không nên,không nên hiểu!

#5 vndesperados

vndesperados

    biết lệnh xref

  • Members
  • PipPipPipPipPipPipPip
  • 547 Bài viết
Điểm đánh giá: 253 (khá)

Đã gửi 26 April 2008 - 02:50 PM

Mình đng rất cần Lisp ghi chiều dài đoạn thẳng theo đơn vị bản vẽ và góc nghiêng của đoạn thẳng đó. Mong các pro chỉ giup!!



Cái này đơn giản quá nên chẳng ai muốn giúp. Hehehe
Thui chịu khó đọc sách ở chổ nói về dimstyle và Unit là biết liền.
Tìm lisp làm gì cho mất thời gian.
Bác Hòanh hỏi xong mà không thèm trả lời là do thấy bạn lười quá đó.
  • 0

#6 Updatelisp

Updatelisp

    biết vẽ pline

  • Members
  • PipPip
  • 68 Bài viết
Điểm đánh giá: 8 (bình thường)

Đã gửi 26 April 2008 - 03:03 PM

Cái này đơn giản quá nên chẳng ai muốn giúp. Hehehe
Thui chịu khó đọc sách ở chổ nói về dimstyle và Unit là biết liền.
Tìm lisp làm gì cho mất thời gian.
Bác Hòanh hỏi xong mà không thèm trả lời là do thấy bạn lười quá đó.

Đối với các Pro thì đơn giản chứ đối với mình thật là khó.thật sự mình không biết làm cách nào. Còn về lisp mình càng mù tịt thêm..Hôm trưóc mình có đọc lisp Fl.lsp trên diễn đàn nhưng không biết cách nào viết chiều dài đoạn thẳng theo yêu cầu của mình( Mình chỉ biết cách sử dụng chứ không viết được lisp mà ). Thà không chứ biết Lisp đó rồi mà không sử dụng thì tiếc quá .
  • 0
Thân Z707!
Không nên hiểu và cũng không nên,không nên hiểu!

#7 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

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

Đã gửi 27 April 2008 - 09:17 AM

Tức mình muốn lisp có thể ghi chiều dài đoạn thẳng theo đơn vị bản vẽ và góc nghiêng của đoạn thẳng đó


lệnh dn (đo nghiêng) dưới đây sẽ giúp bạn.
(defun c:dn ()
(defun str (n)
(vl-string-right-trim "." (vl-string-right-trim "0" (rtos n)))
)
(setq sel (entsel "\nPick vao 1 line:")
ent (car sel)
tt (entget ent)
p1 (cdr (assoc 10 tt))
p2 (cdr (assoc 11 tt))
goc (str (/ (* (angle p1 p2) 180) pi))
dai (str (distance p1 p2))
)
(wtxt (strcat "l=" dai "; g=" goc "%%d") (cadr sel))

)

(defun wtxt (txt p / sty d h)
(setq
sty (getvar "textstyle")
d (tblsearch "style" sty)
h (cdr (assoc 40 d))
)
(entmake (list (cons 0 "TEXT")
(cons 7 sty)
(cons 1 txt)
(cons 10 p)
(if (> h 0)
(cons 40 h)
(assoc 40 d)
)
(assoc 41 d)
)
)
)

  • 1

#8 Updatelisp

Updatelisp

    biết vẽ pline

  • Members
  • PipPip
  • 68 Bài viết
Điểm đánh giá: 8 (bình thường)

Đã gửi 27 April 2008 - 08:32 PM

lệnh dn (đo nghiêng) dưới đây sẽ giúp bạn.

(defun c:dn ()
(defun str (n)
(vl-string-right-trim "." (vl-string-right-trim "0" (rtos n)))
)
(setq sel (entsel "\nPick vao 1 line:")
ent (car sel)
tt (entget ent)
p1 (cdr (assoc 10 tt))
p2 (cdr (assoc 11 tt))
goc (str (/ (* (angle p1 p2) 180) pi))
dai (str (distance p1 p2))
)
(wtxt (strcat "l=" dai "; g=" goc "%%d") (cadr sel))

)

(defun wtxt (txt p / sty d h)
(setq
sty (getvar "textstyle")
d (tblsearch "style" sty)
h (cdr (assoc 40 d))
)
(entmake (list (cons 0 "TEXT")
(cons 7 sty)
(cons 1 txt)
(cons 10 p)
(if (> h 0)
(cons 40 h)
(assoc 40 d)
)
(assoc 41 d)
)
)
)

Thanks Bác Hoành nhiều !Nhưng lisp này thì text ghi lại không theo phương của đường thẳng mà mình vẽ ra .Làm cách nào để khắc phục lỗi đố vậy Bác !
  • 0
Thân Z707!
Không nên hiểu và cũng không nên,không nên hiểu!

#9 crazylisp

crazylisp

    biết vẽ line

  • CADViet Team
  • PipPip
  • 20 Bài viết
Điểm đánh giá: 14 (tàm tạm)

Đã gửi 27 April 2008 - 10:18 PM

Thanks Bác Hoành nhiều !Nhưng lisp này thì text ghi lại không theo phương của đường thẳng mà mình vẽ ra .Làm cách nào để khắc phục lỗi đố vậy Bác !

Xin được gánh vác cùng bác Hoành!
bạn chèn thêm mấy dòng code tại chỗ tôi đã tô đỏ vào code ban đầu thì text sẽ nghiêng theo line:

(defun c:dn ()
(defun str (n)
(vl-string-right-trim "." (vl-string-right-trim "0" (rtos n)))
)
(setq sel (entsel "\nPick vao 1 line:")
ent (car sel)
tt (entget ent)
p1 (cdr (assoc 10 tt))
p2 (cdr (assoc 11 tt))
goc (str (/ (* (angle p1 p2) 180) pi))
dai (str (distance p1 p2))
)
(wtxt (strcat "l=" dai "; g=" goc "%%d") (cadr sel))
(setq DuLieu (entget (entlast))
DuLieu (subst (cons 50 (angle p1 p2)) (assoc 50 DuLieu) DuLieu)
)
(entmod DuLieu)

)

(defun wtxt (txt p / sty d h)
(setq
sty (getvar "textstyle")
d (tblsearch "style" sty)
h (cdr (assoc 40 d))
)
(entmake (list (cons 0 "TEXT")
(cons 7 sty)
(cons 1 txt)
(cons 10 p)
(if (> h 0)
(cons 40 h)
(assoc 40 d)
)
(assoc 41 d)
)
)
)
  • 0