Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
nhat2233

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

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

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.

 

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

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))

 

  • Vote tăng 3

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

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.

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

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!

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ô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.

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

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 .

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

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.

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

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 ?

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

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)
)

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ạ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.com/forum/index.php?showtopic=65459&st=20

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  

×