Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
5 replies to this topic

#1 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 26 August 2014 - 05:35 PM

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

  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#2 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 26 August 2014 - 08:28 PM

có bác nào giúp nhoc với


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#3 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 26 August 2014 - 08:51 PM

Đọc xong thì không hiểu gì hết nhoc ơi! ^_^


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#4 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 26 August 2014 - 10:23 PM

@@ ý 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
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#5 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 27 August 2014 - 08:58 AM

Cho mình list tên đường, cùng mò cho vui :D


  • 0

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#6 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 27 August 2014 - 01:35 PM

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


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^