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

[Yêu cầu] Lisp ghi tên đường và hướng đi

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

- Như tiêu đề nhóc mún 1 lsp như trên, nhoc cũng thử mò viết theo ý mình với khả năng của mình, lsp xài cũng được ^^, nhưng vẫn còn thủ công, nay nhoc mún nhờ mí a trên diễn đàn giúp nhoc cải tiến lsp nếu ko mún nói là viết mới hoàn toàn @@ :), ý tưởng của nhoc thế này:

-  sau khi chạy lệnh vẫn hỏi nhập tỉ lệ như bình thường

-  sau đó sẽ hiện dòng nhắc nhập tên viết tắc của đường, vd: thd = Trần Hưng Đạo, Trần Hữu Dực,v...v, sau khi nhập lúc này tại con trỏ chuột sẽ hiện đầy đủ tên đường cần ghi, click phải chuột để hiện tên đường tiếp theo ứng với chữ cái đầu viết tắc tên đường, đến khi vừa ý click chuột trái để chọn hướng ghi và ghi lên bản vẽ, ah cụm từ "Đi Đ. " giữ nguyên và sẽ đc nối vào tên đường ^^, còn nếu click hết danh sách mà ko chọn đc tên nào thì thoát lệnh 

- thông sô kích thước mũi tên chỉ hướng phía dưới text và đk xoay mũi tên như trong lsp của nhoc ^^ 

- nhoc nghĩ mún làm đc vậy chắc phải có 1 file txt riêng hoặc file gì đó liệt kệ tên đường tương ứng với chữ viết tắc liên kết với lsp, chứ liệt kê toàn bộ trong lisp chắc nặng lắm, danh sách tên đường bên nhoc có rùi nếu có file liên kết nhoc chỉ cần add vào thui :)

- các a ghé qua rãnh xem giúp nhoc ý tưởng này có thực hiện được không ^^

- đây là lsp thổ dân nhoc viết :

;ghi ten duong va ve mui ten huong di
(defun c:kvv (/ old x d w pt1 pt2 pt3 goc goc270 pt4 pt5 pt6 h f ghep ten ghepten xx )
(setq old (mapcar 'getvar '("cmdecho" "osmode")))
(mapcar 'setvar '("cmdecho" "osmode") '(0 0))
(command "style" "VAVON" "vni-avo" 0 1 0 "" "")
(if (tblsearch "style" "VAVON") (setvar "TEXTSTYLE" "VAVON"))
(if (= tl nil) (setq tl 500))
(setq tl1 (getreal (strcat "\nti le bd ht (" (rtos tl 2 0) "): ")))
(if tl1 (setq tl1 tl))
(setq ten (getstring 1 "\n nhap ten duong:"))
(setq ghep (strcat "Ñi Ñ. ")
      ghepten (strcat ghep ten))
(setq x (/ 1000 tl)); he so tl bd
(setq d (/ 2.2 x); do dai dau mui ten
	  w (/ 0.65 x); do rong mui ten
	  h (/ 1.9 x); cao text
	  f 1); khoang cach giong duoi mui ten voi text
(setq pt1 (getpoint "\n chon diem dau:")
	  pt2 (getpoint pt1 "\n chon diem cuoi:"))
(command ".text" pt1 h pt2 ghepten)
(setq goc (angle pt1 pt2)
	  	  goc270 (- goc (/ PI 2)))
(setq pt3 (polar pt1 goc270 f)
	  pt4 (polar pt3 goc 2.5)
	  pt5 (polar pt4 goc d)
	  pt6 (polar pt3 goc (/ (distance pt3 pt5) 2.0)))
(initget "N Y")
  (setq cove (getkword "\nXoay mui ten <Enter=No/Yes>: "))
  (if (= cove "Y") (setq cove t) (setq cove nil))
(command "pline" pt3 "w" 0.0 0.0 pt4 "w" w 0.0 pt5 "")
(setq xx (entlast))
(if cove
  (progn
     (command "rotate" xx "" pt6 180 ))
	 )

(mapcar 'setvar '("cmdecho" "osmode") old)
(princ "\n")
(princ "xong")
(princ)
)
      

 

;ghi ten duong va ve mui ten huong di
(defun c:kvv (/ old x d w pt1 pt2 pt3 goc goc270 pt4 pt5 pt6 h f ghep ten ghepten xx )
(setq old (mapcar 'getvar '("cmdecho" "osmode")))
(mapcar 'setvar '("cmdecho" "osmode") '(0 0))
(command "style" "VAVON" "vni-avo" 0 1 0 "" "")
(if (tblsearch "style" "VAVON") (setvar "TEXTSTYLE" "VAVON"))
(if (= tl nil) (setq tl 500))
(setq tl1 (getreal (strcat "\nti le bd ht (" (rtos tl 2 0) "): ")))
(if tl1 (setq tl1 tl))
(setq ten (getstring 1 "\n nhap ten duong:"))
(setq ghep (strcat "Ñi Ñ. ")
      ghepten (strcat ghep ten))
(setq x (/ 1000 tl)); he so tl bd
(setq d (/ 2.2 x); do dai dau mui ten
 w (/ 0.65 x); do rong mui ten
 h (/ 1.9 x); cao text
 f 1); khoang cach giong duoi mui ten voi text
(setq pt1 (getpoint "\n chon diem dau:")
 pt2 (getpoint pt1 "\n chon diem cuoi:"))
(command ".text" pt1 h pt2 ghepten)
(setq goc (angle pt1 pt2)
   goc270 (- goc (/ PI 2)))
(setq pt3 (polar pt1 goc270 f)
 pt4 (polar pt3 goc 2.5)
 pt5 (polar pt4 goc d)
 pt6 (polar pt3 goc (/ (distance pt3 pt5) 2.0)))
(initget "N Y")
  (setq cove (getkword "\nXoay mui ten <Enter=No/Yes>: "))
  (if (= cove "Y") (setq cove t) (setq cove nil))
(command "pline" pt3 "w" 0.0 0.0 pt4 "w" w 0.0 pt5 "")
(setq xx (entlast))
(if cove
  (progn
     (command "rotate" xx "" pt6 180 ))
)
 
(mapcar 'setvar '("cmdecho" "osmode") old)
(princ "\n")
(princ "xong")
(princ)
)
 
;ghi ten duong va ve mui ten huong di
(defun c:kvv (/ old x d w pt1 pt2 pt3 goc goc270 pt4 pt5 pt6 h f ghep ten ghepten xx )
(setq old (mapcar 'getvar '("cmdecho" "osmode")))
(mapcar 'setvar '("cmdecho" "osmode") '(0 0))
(command "style" "VAVON" "vni-avo" 0 1 0 "" "")
(if (tblsearch "style" "VAVON") (setvar "TEXTSTYLE" "VAVON"))
(if (= tl nil) (setq tl 500))
(setq tl1 (getreal (strcat "\nti le bd ht (" (rtos tl 2 0) "): ")))
(if tl1 (setq tl1 tl))
(setq ten (getstring 1 "\n nhap ten duong:"))
(setq ghep (strcat "Ñi Ñ. ")
      ghepten (strcat ghep ten))
(setq x (/ 1000 tl)); he so tl bd
(setq d (/ 2.2 x); do dai dau mui ten
 w (/ 0.65 x); do rong mui ten
 h (/ 1.9 x); cao text
 f 1); khoang cach giong duoi mui ten voi text
(setq pt1 (getpoint "\n chon diem dau:")
 pt2 (getpoint pt1 "\n chon diem cuoi:"))
(command ".text" pt1 h pt2 ghepten)
(setq goc (angle pt1 pt2)
   goc270 (- goc (/ PI 2)))
(setq pt3 (polar pt1 goc270 f)
 pt4 (polar pt3 goc 2.5)
 pt5 (polar pt4 goc d)
 pt6 (polar pt3 goc (/ (distance pt3 pt5) 2.0)))
(initget "N Y")
  (setq cove (getkword "\nXoay mui ten <Enter=No/Yes>: "))
  (if (= cove "Y") (setq cove t) (setq cove nil))
(command "pline" pt3 "w" 0.0 0.0 pt4 "w" w 0.0 pt5 "")
(setq xx (entlast))
(if cove
  (progn
     (command "rotate" xx "" pt6 180 ))
)
 
(mapcar 'setvar '("cmdecho" "osmode") old)
(princ "\n")
(princ "xong")
(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

@@ ý nhoc là thay vì nhoc phải nhập tên đường lúc chạy lsp thì nhoc chỉ cần nhập chu viet tắt chữ cái đầu tên đường đó sẽ có 1 file liên kết trong đó liệt kê những tên đường bắt đầu từ nhửng chữ viết tắt đó sau đó space tên đường đầu tiên trong danh sách sẽ đc in lên cad nếu khong phải đg mình cần click phải để thay đổi nếu đúg rùi thì click trái chọn điểm và hướg cần ghi sau đó vẽ mũi tên chỉ hướng đi

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

hihi cái list nhoc mới đang tổng hợp, chắc vài quận xung quanh nhoc thường đi thực địa thui, cái khó là nhờ mấy anh viết đoạn code cho phép nhập tên viết tắc enter sau đó hiện tên đường đầu tiên trong danh sách đó, ko phải thì click phải để nhảy tiếp tên tiếp theo trong danh sách chọn đc rùi thì sapce or trái chuột chọn hướng ghi, và cái file chứa list để lsp liên kết phải là dạng gì, sau khi có file đó, dựa vào cấu trúc file đó add thêm tên đường vào ^^

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  

×