Đến nội dung


Hình ảnh

Xin lisp ghi kích thước tự động


  • Please log in to reply
13 replies to this topic

#1 nhat2233

nhat2233

    biết zoom

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

Đã gửi 12 July 2013 - 11:37 PM

Mình muốn xin diễn đàn viết giúp mình lisp ghi kích thước đoạn thẳng mà khi pick vào điểm đầu và điểm cuối của đoạn thẳng thì sẽ tự động ghi ra text kích thước tại trung điểm của đoạn thẳng với 1 khoảng cách nhất định. Mình xin cảm ơn.

 


  • 0

#2 TaiNguyen79

TaiNguyen79

    biết vẽ ellipse

  • Members
  • PipPip
  • 51 Bài viết
Điểm đánh giá: 24 (tàm tạm)

Đã gửi 13 July 2013 - 11:21 PM

Mình muốn xin diễn đàn viết giúp mình lisp ghi kích thước đoạn thẳng mà khi pick vào điểm đầu và điểm cuối của đoạn thẳng thì sẽ tự động ghi ra text kích thước tại trung điểm của đoạn thẳng với 1 khoảng cách nhất định. Mình xin cảm ơn.

Vấn đề này đã có nhiều rồi. tuy nhiên có lẽ đoạn lsp sau đây là hợp với ý bạn :


;ghi kich thuoc
;Luu gia tri bien PTC trong bo nho dung de lay diem truoc do
;neu enter o buoc chon PT1 thi se lay PT1 la diem lien truoc (lastpoint)
(defun c:ghikt (/ OSM PT0 PT1 PT2 DIST A12 MID12)
(setq OSM (getvar "osmode"))
(if (null PTC) (setq PT0 (getvar "Lastpoint")) (setq PT0 PTC))
(setvar "osmode" 1)
(if (null (setq PT1 (getpoint "\nChon diem thu nhat :\n"))) (setq PT1 PT0))
(initget 1) (setq PT2 (getpoint PT1 "\nChon diem thu hai :\n"))
(setvar "osmode" 0)
(setq PTC PT2)
(if (equal PT1 PT2 0.001)
(princ "\nHai diem trung nhau\n")
(progn
(setq DIST (distance PT1 PT2) A12 (angle PT1 PT2) MID12 (polar PT1 A12 (/ DIST 2.0)))
(setq pt (polar MID12 (+ A12 (/ PI 2)) 1))
(if (or (<= A12 (/ PI 2)) (>= A12 (* PI 1.5)))
(command ".TEXT" "M" pt 1 (* (/ A12 pi) 180) (rtos DIST 2 2) "")
(command ".TEXT" "M" pt 1 (+ (* (/ A12 pi) 180) 180) (rtos DIST 2 2) ""))))
(setvar "osmode" OSM)(princ))


  • 3

#3 sumi

sumi

    biết lệnh array

  • Members
  • PipPipPip
  • 185 Bài viết
Điểm đánh giá: 55 (tàm tạm)

Đã gửi 14 July 2013 - 10:01 AM

Vấn đề này đã có nhiều rồi. tuy nhiên có lẽ đoạn lsp sau đây là hợp với ý bạn :
 

Cảm ơn bạn về lisp này nhưng lLisp này chỉ tạo ra line và text thôi, chứ ko phải dimension bạn ah.


  • 0
"Xin chào bạn. Đây là tổng đài tin nhắn. Ấn phím 1 để có 1 lời khen. Phím 2 cho một lời chúc tốt đẹp. Phím 3 cho 1 nụ hôn. Phím 4 cho 1 cuộc hẹn. Nếu muốn tất cả hãy bấm số của tôi"

#4 nhat2233

nhat2233

    biết zoom

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

Đã gửi 14 July 2013 - 05:05 PM

Vấn đề này đã có nhiều rồi. tuy nhiên có lẽ đoạn lsp sau đây là hợp với ý bạn :


;ghi kich thuoc
;Luu gia tri bien PTC trong bo nho dung de lay diem truoc do
;neu enter o buoc chon PT1 thi se lay PT1 la diem lien truoc (lastpoint)
(defun c:ghikt (/ OSM PT0 PT1 PT2 DIST A12 MID12)
(setq OSM (getvar "osmode"))
(if (null PTC) (setq PT0 (getvar "Lastpoint")) (setq PT0 PTC))
(setvar "osmode" 1)
(if (null (setq PT1 (getpoint "\nChon diem thu nhat :\n"))) (setq PT1 PT0))
(initget 1) (setq PT2 (getpoint PT1 "\nChon diem thu hai :\n"))
(setvar "osmode" 0)
(setq PTC PT2)
(if (equal PT1 PT2 0.001)
(princ "\nHai diem trung nhau\n")
(progn
(setq DIST (distance PT1 PT2) A12 (angle PT1 PT2) MID12 (polar PT1 A12 (/ DIST 2.0)))
(setq pt (polar MID12 (+ A12 (/ PI 2)) 1))
(if (or (<= A12 (/ PI 2)) (>= A12 (* PI 1.5)))
(command ".TEXT" "M" pt 1 (* (/ A12 pi) 180) (rtos DIST 2 2) "")
(command ".TEXT" "M" pt 1 (+ (* (/ A12 pi) 180) 180) (rtos DIST 2 2) ""))))
(setvar "osmode" OSM)(princ))

Cảm ơn bạn TaiNguyen79 đã giúp đỡ mình nhưng yêu cầu của mình là làm sao text ghi kích thước sẽ song song với đường line, nằm trung điểm và cách line 1 khoảng cách là 2cm chẳng hạn. Chân thành cảm ơn!


  • 0

#5 lamgis

lamgis

    biết zoom

  • Members
  • Pip
  • 13 Bài viết
Điểm đánh giá: -3 (bình thường)

Đã gửi 14 July 2013 - 10:01 PM

Tôi nghĩ lệnh "Command: _dimaligned" thì sao?


  • -1

#6 nhat2233

nhat2233

    biết zoom

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

Đã gửi 14 July 2013 - 10:45 PM

Tôi nghĩ lệnh "Command: _dimaligned" thì sao?

lệnh _dimaligned thì ok nhưng tại nhu cầu công việc gồm nhiều cạnh thửa đất mà dùng lệnh _dimaligned để ghi kt thì mình phải mất 1 công đoạn nữa đó là nhập khoảng cách of text với đg line mới đc như ý muốn. Nên mình mới cấn lisp mà khi pick 2 đầu của 1 đoạn thẳng sẽ cho ra kq nằm song song tại trung điểm của đoạn thằng đó và cách đoạn thẳng đó 2cm.


  • 0

#7 TaiNguyen79

TaiNguyen79

    biết vẽ ellipse

  • Members
  • PipPip
  • 51 Bài viết
Điểm đánh giá: 24 (tàm tạm)

Đã gửi 15 July 2013 - 08:38 AM

Cảm ơn bạn TaiNguyen79 đã giúp đỡ mình nhưng yêu cầu của mình là làm sao text ghi kích thước sẽ song song với đường line, nằm trung điểm và cách line 1 khoảng cách là 2cm chẳng hạn. Chân thành cảm ơn!

Nếu bạn cần dimaligned thì dùng lệnh cad thôi. còn LSP ghikt đó phù hợp với y/c của bạn mà. text đc ghi ra chính là giá trị cạnh của 2 điểm bạn chọn đó. còn bạn muốn to nhỏ hay cách bao nhiêu thì sửa lsp lại chút là đc .


  • 0

#8 nhat2233

nhat2233

    biết zoom

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

Đã gửi 15 July 2013 - 09:52 AM

Nếu bạn cần dimaligned thì dùng lệnh cad thôi. còn LSP ghikt đó phù hợp với y/c của bạn mà. text đc ghi ra chính là giá trị cạnh của 2 điểm bạn chọn đó. còn bạn muốn to nhỏ hay cách bao nhiêu thì sửa lsp lại chút là đc .

Vậy nhờ bạn TaiNguyen79 sửa dùm lại cho mình lisp đó được không. Cảm ơn ơn bạn.


  • 0

#9 TaiNguyen79

TaiNguyen79

    biết vẽ ellipse

  • Members
  • PipPip
  • 51 Bài viết
Điểm đánh giá: 24 (tàm tạm)

Đã gửi 15 July 2013 - 10:12 AM

Vậy nhờ bạn TaiNguyen79 sửa dùm lại cho mình lisp đó được không. Cảm ơn ơn bạn.

Bạn in 1=1 hay 2=1

Tỷ lệ vẽ là bao nhiêu. 1/500 ? 1/200 ? 1/1000 ?


  • 0

#10 nhat2233

nhat2233

    biết zoom

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

Đã gửi 15 July 2013 - 11:59 AM

Bạn in 1=1 hay 2=1

Tỷ lệ vẽ là bao nhiêu. 1/500 ? 1/200 ? 1/1000 ?

Tỷ lệ là 1/500 bạn ak.


  • 0

#11 TaiNguyen79

TaiNguyen79

    biết vẽ ellipse

  • Members
  • PipPip
  • 51 Bài viết
Điểm đánh giá: 24 (tàm tạm)

Đã gửi 15 July 2013 - 12:06 PM

Tỷ lệ là 1/500 bạn ak.

1/500 in 2=1 thì lsp đó ok mà. Bạn xem cần sửa ntn thì nói rõ 1 chút


  • 0

#12 namnhim

namnhim

    biết vẽ polygon

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

Đã gửi 15 July 2013 - 09:56 PM

Bạn dùng cái này xem có đúng ý không

 

(defun c:lktd ( )
(command "undo" "be")
  (if (null dolora)(setq dolora "4"))
(Setq temp T)
(While temp
(setq a (strcat "\nKhoang cach dim hien hanh la (" dolora ") /<Diem dau tien>: "))
(Initget "k K")
(setq str (getpoint a))
(Cond
  ((= str "k") (setq dolora (getstring (strcat"\nKhoang cach dim voi line <" dolora "> :"))))
  ((= str "K") (setq dolora (getstring (strcat"\nKhoang cach dim voi line <" dolora "> :"))))
   (Progn
  (Setq a str)
   (setq temp nil)
  )
)
)
 
(setq b (getpoint a"\nChon diem tiep theo: "))
(setq luubatdiem (getvar "osmode"))
  (setvar "osmode" 0)
 (setq doclora (atof dolora))
 (setq gocxeo(angle a B))
 (setq daiab (distance a B))
 (setq c (polar a gocxeo (/ daiab 2)))
 (setq d (polar c (+ gocxeo (/ pi 2)) doclora))
(command "DIMALIGNED" a b d)
(cond
((> gocxeo (/ pi 2)) (command ".rotate" "last" "" c 180))
)
(setvar "osmode" luubatdiem)
(command "undo" "end")
 (Princ)
)

  • 0

#13 tien2005

tien2005

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 257 Bài viết
Điểm đánh giá: 94 (tàm tạm)

Đã gửi 16 July 2013 - 04:46 PM

Tại sao không dùng lệnh dimaligne mà phai dùng text để ghi kích thước

Trong dímtyle bạn có thể cho hiện text còn các đường gióng, đường ghi kích thước Bạn có thể ẩn đi

Bạn chủ topic tham khảo ở đây chắc sẽ đúng với yêu cầu của Bạn. nếu có yêu cầu gì  thì comment vào topic Bạn download luôn nhé

http://www.cadviet.c...pic=65459&st=20


  • 0

#14 vit_dong

vit_dong

    Chưa sử dụng CAD

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

Đã gửi 26 July 2016 - 07:44 AM

@TaiNguyen79

Bạn cho mình hỏi muốn thêm đơn vị m vào thì làm sao vậy?

Cám ơn bạn trước.


  • 0