Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
ECO

"[Yêu cầu] Nhờ viết Lisp ghi chiều dài - độ dốc, hướng dốc

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

Mình đang phải chỉnh sửa một số bản vẽ về giao thông, nhưng không phải dân giao thông chuyên ngành nên khá vất vả.

Mình muốn nhờ các cao thủ viết giúp một lisp như sau:

- Nội dung:

+ Lisp dùng để ghi độ dài đối tượng chọn ( line, arc, pline), hoặc khoảng cách giữa hai điểm pick: L= ...m

+ Lisp ghi thêm độ dốc i=....% - Bằng cách nhập cao độ điểm đầu và cao độ điểm cuối.( Vì mình làm trên bình đồ 2D)

+ Dòng ghi L=...m nằm trên, dòng ghi i;...% nằm dưới, ở giữa là mũi tên chỉ hướng dốc nằm trùng với đường line chọn.

+ Mũi tên vẽ theo hướng độ dốc từ điểm cao độ lớn hơn xuống điểm cao độ nhỏ hơn

+ Nếu có được tùy chọn để phần Text và mũi tên tạo thành 1 block Attribute nằm trong 1 layer, và có thể tùy biến kích thước Scale tùy thuộc tỷ lệ bản vẽ muốn in để dễ quản lý thì tốt.

- Mình gửi kèm file Cad có block Attribute theo nội dung mình cần, mong các bạn giúp đỡ.

bLOCK.jpg

http://www.mediafire...zw48mobxuv2exkp

Xin chân thành cảm ơn các bạn trướ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

Trên Diễn đàn mình cũng thấy có Lisp ghi độ dốc, và lisp ghi chiều dài, nhưng theo hai kiểu khác nhau nên không kết hợp làm một được.

Mình cũng chỉ mới biết tập tọe về Lisp nên nhờ các bro chỉ giá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

Mình đang phải chỉnh sửa một số bản vẽ về giao thông, nhưng không phải dân giao thông chuyên ngành nên khá vất vả.

Mình muốn nhờ các cao thủ viết giúp một lisp như sau:

- Nội dung:

+ Lisp dùng để ghi độ dài đối tượng chọn ( line, arc, pline), hoặc khoảng cách giữa hai điểm pick: L= ...m

+ Lisp ghi thêm độ dốc i=....% - Bằng cách nhập cao độ điểm đầu và cao độ điểm cuối.( Vì mình làm trên bình đồ 2D)

+ Dòng ghi L=...m nằm trên, dòng ghi i;...% nằm dưới, ở giữa là mũi tên chỉ hướng dốc nằm trùng với đường line chọn.

+ Mũi tên vẽ theo hướng độ dốc từ điểm cao độ lớn hơn xuống điểm cao độ nhỏ hơn

+ Nếu có được tùy chọn để phần Text và mũi tên tạo thành 1 block Attribute nằm trong 1 layer, và có thể tùy biến kích thước Scale tùy thuộc tỷ lệ bản vẽ muốn in để dễ quản lý thì tốt.

- Mình gửi kèm file Cad có block Attribute theo nội dung mình cần, mong các bạn giúp đỡ.

http://www.mediafire...zw48mobxuv2exkp

Xin chân thành cảm ơn các bạn trước.

Hề hề hề,

1/- Bạn cần nói rõ hơn về độ dài đối tượng mà bạn cần trong trường hợp bạn dùng phương án pick 2 điểm và hai diểm đó là các mút của một đoạn cong.

2/- Độ dốc bạn nói được tính theo chiều dài đối tượng hay khoảng cách giữa hai mút của đối tượng??

3/- Mũi tên sẽ ra sao nếu đoạn bạn chọn ghi là đoạn cong???

4/- Trường hợp mũi tên quay ngược chiều thì các text có ngược chiều theo không hay là vẫn giữ nguyên khái niệm trên dưới như của bạn.???

5/- Cứ theo như bản vẽ bạn gửi thì khái niệm trên và dưới của bạn hơi ..... đặc biệt.

Bạn hãy xem lại và trả lời các câu hỏi trên thì may ra mới có lisp đúng theo ý bạn được.

  • Vote tăng 1

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ác, em sẽ nói cụ thể luôn ạ.

1. Độ dài khi pick chỉ áp dụng cho đoạn thẳng, đối với đoạn cong sẽ không pick 2 điểm mà pick chọn đối tượng ( Kiểu như Dim độ dại cung)

2. Độ dốc được tính theo độ chênh cao giữa 2 điểm ( số này được nhập tay)/chiều dài. Ví dụ chiều dài 45m, độ cao điểm 1 là +35m, độ cao điểm 2 là +39.5m , lisp sẽ vẽ mũi tên quay từ điểm 2 về điểm 1 ( Không phụ thuộc thứ tự pick), và ghi độ dốc i=10%.

(i=39.5-35/45*100%). Vì đang ở bước Quy hoạch nên không cần tính độ dài theo dốc, chỉ cần độ dài trên mặt phẳng - tức là độ dài thực của đối tượng.

3. Mũi tên sẽ nằm ở trung điểm đoạn cong và có phương tiếp tuyến với đoạn cong.

4. Nếu mũi tên xoay ngược thì Text vẫn trên dưới như thế này ạ:

5. Hì hì, đúng là khó diễn đạt, nên em phải chơi cái hình lên. Đại khái là xoay kiểu gì thì nó vẫn như vầy ạ:

2bLOCK.jpg

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ác, em sẽ nói cụ thể luôn ạ. 1. Độ dài khi pick chỉ áp dụng cho đoạn thẳng, đối với đoạn cong sẽ không pick 2 điểm mà pick chọn đối tượng ( Kiểu như Dim độ dại cung) 2. Độ dốc được tính theo độ chênh cao giữa 2 điểm ( số này được nhập tay)/chiều dài. Ví dụ chiều dài 45m, độ cao điểm 1 là +35m, độ cao điểm 2 là +39.5m , lisp sẽ vẽ mũi tên quay từ điểm 2 về điểm 1 ( Không phụ thuộc thứ tự pick), và ghi độ dốc i=10%. (i=39.5-35/45*100%). Vì đang ở bước Quy hoạch nên không cần tính độ dài theo dốc, chỉ cần độ dài trên mặt phẳng - tức là độ dài thực của đối tượng. 3. Mũi tên sẽ nằm ở trung điểm đoạn cong và có phương tiếp tuyến với đoạn cong. 4. Nếu mũi tên xoay ngược thì Text vẫn trên dưới như thế này ạ: 5. Hì hì, đúng là khó diễn đạt, nên em phải chơi cái hình lên. Đại khái là xoay kiểu gì thì nó vẫn như vầy ạ:

Hề hề hề,

Bạn dùng thử cái này rồi cho ý kiến nhé. Với line và arc thì chắc là ổn, riêng với pline có thể bạn chưa thật ứng ý vì điểm đặt mũi tên và text.

Về hướng mũi tên chỉ độ dốc do bạn không nói rõ điểm thứ nhất và điểm thứ hai được chọn ra sao nên mình chơi phương án cho bạn tự chọn vậy. Khi bạn thấy chiều mũi tên chưa đúng khi lisp hỏi bạn chỉ cần nhập y hay Y là nó sẽ đổi chiều theo ý bạn.


(defun c:gdd ()
(vl-load-com)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(command "undo" "be")
(setq ent (car (entsel "\n Chon doan can ghi do doc "))
         obj (vlax-ename->vla-object ent)
         h1 (getreal "\n Nhap cao do diem dau: ")
         h2 (getreal "\n Nhap cao do diem cuoi: ")
         h (getreal "\n Nhap chieu cao text: ")
         p1 (vlax-curve-getstartpoint obj)
         p2 (vlax-curve-getendpoint obj)
         p3 (vlax-curve-getpointatparam obj (/ (vlax-curve-getendparam obj) 2))
         len (vlax-curve-getdistatpoint obj p2)
         v (vlax-curve-getfirstderiv obj (/ (vlax-curve-getendparam obj) 2))
         ang (atan (/ (cadr v) (car v)))
         i (/ (* (abs (- h1 h2)) 100) len)
)
(command "pline" (polar p3 ang (* 5 h)) "w" 0.0 h (polar p3 ang (* 3 h)) "w" (/ h 4) (/ h 4) (polar p3 (+ ang pi) (* 5 h)) "")
(setq mt (entlast))
(if (> ang pi)
   (setq ang (- ang pi))
)
(command "text" "j" "mc" (polar p3 (+ ang (/ pi 2)) h) h (* (/ ang pi) 180) (strcat "i = " (rtos i 2 4) "%"))
(command "text" "j" "mc" (polar p3 (- ang (/ pi 2)) h) h (* (/ ang pi) 180) (strcat "L = " (rtos len 2 1) "(m)"))
(setq ans (getstring "\n Ban muon doi chieu doc <y or n>: "))
(if (= (strcase ans) "Y")
   (command "rotate" mt "" p3 180)
)
(command "undo" "e")
(setvar "osmode" oldos)
(princ)
)

Đây chỉ là lisp thử chưa hoàn chỉnh, bạn cứ việc cho biết những điều cần hoàn thiện, mình sẽ hoàn thiện lại sau nhé.

Chúc bạn vui.

  • Vote tăng 5

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ác nhiều ạ, em đã dùng thử và xài luôn cho bản vẽ rồi, hì hì. Dùng cho Line, Arc rất ngon lành, ghi được cho cả Spline luôn. Sướng. Quả là bá chấy !

Chỉ có một chút mong bác viết thêm một chút để trọn vẹn:

- Ví dụ như cần ghi theo các cạnh của một Rectang hoặc Poligon, hoặc Pline gấp khúc chẳng hạn thì cần chuyển sang kiểu Pick và nhập cao độ từng điểm liên tiếp, độ dài sẽ lấy theo khoảng cách hai điểm pick liền nhau đó, như kiểu Dimcontinue ấy ạ.

- Đoạn nhập chiều cao Text, nên để một giá trị mặc định, ví dụ thường dùng là 3, để đỡ phải lặp lại mỗi lần nhập lệnh.

- Nếu gom Text và mũi tên lại thành một Block Attribute thì sẽ tiện cho việc quản lý bản vẽ ( Các bác làm về Quy hoạch Cấp thoát Nước có thể điều chỉnh Block này thành dạng B=...( Định trước cho Block), L=...m, i=...% để sử dụng khi ghi thông số tuyến ống.

Chúc bác cuối tuần vui vẻ. Em lại vục mặt cày tiếp đây ạ.

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

giết gà dùng dao mổ trâu làm j, cái này có thể dễ dàng tạo được bằng cách thiết lập trong dimentions mà, sao phải khổ thế

Chỉ tạo được chiều dài và mũi tên bác ơi, còn tính toán độ dốc nữa cơ mà.

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

Hic, có bác nào giúp mình được không ạ?

Hề hề hề,

Xin lỗi vì bạn phải đợi lâu.Vừa qua mình cũng hơi bận nên không đọc được yêu cầu của bạn.

Đây là cái mình đã sửa lại từ cái lisp cũ, không biết đã đúng với cái bạn yêu cầu hay chưa. Nếu chưa xin đừng ngại nói rõ chỗ chưa được để mình ngâm tiếp.


(defun c:gdd (/ oldos )
(vl-load-com)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(command "undo" "be")
(makeattbl "GHIDODOC1" nil)
(makeattbl "GHIDODOC2" T)
(alert "\n Hay chon cac pline, line, arc can ghi do doc ")
(setq ssl (acet-ss-to-list (ssget (list (cons 0 "*line,arc")))))
(foreach ent ssl      
     (ghidodoc ent)      
)
(command "undo" "e")
(setvar "osmode" oldos)
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;; Tao block thuoc tinh 
(defun makeattbl (name Tflag / p e1 e2 e3 )
(setvar "aflags" 0)
(if (not (tblsearch "block" name ))
(progn
(setq p (list 0.0 0.0 0.0))
(if Tflag
(command "pline" (polar p pi 15) "w" 0.0 3 (polar p pi 9) "w" 0.75 0.75 (polar p  0 15) "")
(command "pline" (polar p 0 15) "w" 0.0 3 (polar p 0 9) "w" 0.75 0.75 (polar p  pi 15) "")
)
(setq e1 (entlast))
(command "attdef" "" "Dodoc" "dodoc" "10%" "j" "mc" (polar p  (/ pi 2) 3) 3 0  )
(setq e2 (entlast))
(command "attdef" "" "length" "dodai" "500" "j" "mc" (polar p (- (/ pi 2)) 3) 3 0  )
(setq e3 (entlast))
(command "block" name p e1 e2 e3 "")
) )
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun ghidodoc (ent / obj h1 h2 plst p2 p3 len i v ang ans)
(setq els (entget ent)  )
(if (or (= (cdr (assoc 0 els)) "LINE") (= (cdr (assoc 0 els)) "ARC"))
   (progn 
      (command "pedit" ent "y" "")
      (setq ent (entlast))
   )
)
(redraw ent 3)
(setq obj (vlax-ename->vla-object ent)
         plst (acet-geom-vertex-list ent) 
         h1 (getreal "\n Nhap cao do diem dau: ") )
(foreach p plst
   (setq par (vlax-curve-getparamatpoint obj p)                   
         ;;;;;;;; h (getreal "\n Nhap chieu cao text: ")
         ;;;;;;;; p1 (vlax-curve-getstartpoint obj)
         p2 (vlax-curve-getpointatparam obj (1+ par))  )
   (if p2 (progn
             (setq  p3 (vlax-curve-getpointatparam obj (+ par 0.5))
                       h2 (getreal "\n Nhap cao do diem ke tiep: ")
                       len (- (vlax-curve-getdistatpoint obj p2) (vlax-curve-getdistatpoint obj p))
                       v (vlax-curve-getfirstderiv obj (+ par 0.5))
                       ang (atan (/ (cadr v) (car v)))
                       i (/ (* (abs (- h1 h2)) 100) len)  )
             (command "insert" "GHIDODOC1" "R" (* (/ ang pi) 180) p3 "" ""  (strcat "i = " (rtos i 2 4) "%") (strcat "L = " (rtos len 2 1) "(m)") )              
             (setq ans (getstring "\n Ban co dong y voi chieu do doc nay < y or n> : "))
             (if (= (strcase ans) "N")
                 (progn
                 (command "erase" "last" "")
                 (command "insert" "GHIDODOC2" "R" (* (/ ang pi) 180) p3 "" ""  (strcat "i = " (rtos i 2 4) "%") (strcat "L = " (rtos len 2 1) "(m)") )
                 )
              )
              )
    )
    (setq h1 h2)
)
(redraw ent 4)
)

Chúc bạn luôn vui.

  • 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

Cảm ơn bác phamthanhbinh rất nhiều, lisp dùng ngon rồi bác ạ.

Cảm ơn diễn đàn, chúc Cadviet ngày càng phát triể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

cảm ơn bạn đã có lisp hay

nhưng đường mũi tên và chữ bé quá so với mặt bằng

Vậy có cách nào làm lơn hơn trong quá trình thực hiện lệnh không????

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ác đã chia sẻ lisp nhưng am dung lisp của bác vẫn chưa được ,em không hiểu cái chỗ nhập toạ độ điểm đầu điểm cuối như thế nào trong autocad mong bác chỉ giá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

các bác cho em hỏi cái lisp trên làm sao để chọn được hướng mũi tên quay đúng hướng từ điểm cao hơn về điểm thấp hơn??? sẵn tiện nhờ các bác sửa giu,f em lisp trên thêm bước pick điểm đầu => cao độ điểm đầu => pick điểm cuối => cao độ điểm cuối. sau đó lisp tính chiều dài và độ dốc theo 2 điểm đó đồng thời mũi tên sẽ quay theo hướng từ điểm pick trước đến điểm pick sau. tks các bá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

cảm ơn bạn đã có lisp hay

nhưng đường mũi tên và chữ bé quá so với mặt bằng

Vậy có cách nào làm lơn hơn trong quá trình thực hiện lệnh không????

 

Hề hề hề,

Muốn mũi tên to hay bé dài hay ngắn thì bạn hãy sửa nó trong các dòng code:

(command "pline" (polar p pi 15) "w" 0.0 3 (polar p pi 9) "w" 0.75 0.75 (polar p 0 15) "")

(command "pline" (polar p 0 15) "w" 0.0 3 (polar p 0 9) "w" 0.75 0.75 (polar p pi 15) "")

Trong code đó:

Mủi tên dài 6, đỉnh rộng 0 đáy rộng 3

Thân dài 24 rộng 0,75.

  • Vote tăng 1

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ác đã chia sẻ lisp nhưng am dung lisp của bác vẫn chưa được ,em không hiểu cái chỗ nhập toạ độ điểm đầu điểm cuối như thế nào trong autocad mong bác chỉ giáo 

Hề hề hề,

Bạn đã dùng lisp chưa vậy??? Trong lisp chỉ có yêu cầu nhập cao độ điểm đầu và nhập cao độ điểm cuối chứ có bắt nhập toạ độ điểm đâu nhỉ?? Các điểm đầu và cuối này là do lisp tự xác định theo đường pline cần tính độ dốc cơ mà.....

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

Mong muốn bạn viết bổ sung Lisp tính độ dốc với việc thực hiện như sau :

Chọn điểm đầu tuyến, chọn text cao độ tự nhiên hoăc nhập vào;;

Chọn điểm cuối tuyến, chọn text cao độ tự nhiên hoăc nhập vào.

Chọn chiều thể hiện ( Đầu - Cuối hay Cuối - Đầu ) và tính độ dốc theo chiều.

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

Mong muốn bạn viết bổ sung Lisp tính độ dốc với việc thực hiện như sau :

Chọn điểm đầu tuyến, chọn text cao độ tự nhiên hoăc nhập vào;;

Chọn điểm cuối tuyến, chọn text cao độ tự nhiên hoăc nhập vào.

Chọn chiều thể hiện ( Đầu - Cuối hay Cuối - Đầu ) và tính độ dốc theo chiều.

Cám ơn.

Hề hề hề,

cái bạn yêu cầu hoàn toàn có thể sử dụng lisp trên để làm. Chỉ có điều bạn phải tạo trước cái pline với hai điểm đầu và cuối bạn muốn nêu như chua có mà thôi. Với thâm niên CADviet của bạn mình tin bạn đủ khả năng để tự làm thêm phần tạo pline này. Hãy thử xem nhé, cứ mạnh dạn mà làm, sai đâu sửa đó, sợ chi bố con thằng nà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

 

Mình đang phải chỉnh sửa một số bản vẽ về giao thông, nhưng không phải dân giao thông chuyên ngành nên khá vất vả.

Mình muốn nhờ các cao thủ viết giúp một lisp như sau:

- Nội dung:

+ Lisp dùng để ghi độ dài đối tượng chọn ( line, arc, pline), hoặc khoảng cách giữa hai điểm pick: L= ...m

+ Lisp ghi thêm độ dốc i=....% - Bằng cách nhập cao độ điểm đầu và cao độ điểm cuối.( Vì mình làm trên bình đồ 2D)

+ Dòng ghi L=...m nằm trên, dòng ghi i;...% nằm dưới, ở giữa là mũi tên chỉ hướng dốc nằm trùng với đường line chọn.

+ Mũi tên vẽ theo hướng độ dốc từ điểm cao độ lớn hơn xuống điểm cao độ nhỏ hơn

+ Nếu có được tùy chọn để phần Text và mũi tên tạo thành 1 block Attribute nằm trong 1 layer, và có thể tùy biến kích thước Scale tùy thuộc tỷ lệ bản vẽ muốn in để dễ quản lý thì tốt.

- Mình gửi kèm file Cad có block Attribute theo nội dung mình cần, mong các bạn giúp đỡ.

bLOCK.jpg

http://www.mediafire...zw48mobxuv2exkp

Xin chân thành cảm ơn các bạn trước.

Xin cho hỏi cũng với hình vẽ trên nhưng tôi muốn ghi dữ liệu của điểm như điểm 71, 168, 70 từ các dữ liệu pick chọn trên cad thì có lisp cad không ạ? Hình như đây là một chức năng của Nova nhưng tôi không sử dụng Nova nên có thể nhờ các vị tiền bối tạo một lisp trên cad với

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

Xin cho hỏi cũng với hình vẽ trên nhưng tôi muốn ghi dữ liệu của điểm như điểm 71, 168, 70 từ các dữ liệu pick chọn trên cad thì có lisp cad không ạ? Hình như đây là một chức năng của Nova nhưng tôi không sử dụng Nova nên có thể nhờ các vị tiền bối tạo một lisp trên cad với

Chân thành cảm ơn

Hề hề hề,

Có thể được với điều kiện bạn hãy gửi một file bản vẽ mẫu và 1file text kết quả mà bạn cần lên để mọi người có thể hình dung ra cái bạn cầ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

Hề hề hề,

Có thể được với điều kiện bạn hãy gửi một file bản vẽ mẫu và 1file text kết quả mà bạn cần lên để mọi người có thể hình dung ra cái bạn cần....

Chào bác phamthanhbinh, diễn giải như thế này trong trường hợp không upload file được yêu cầu của em

- em có chạy trắc dọc thoát nước ra được số liệu trên cad có cao độ mặt đất và cao độ đáy ga

- em cần thể hiện trên bình đồ tại các điểm hố ga có cao độ mặt đất và cao độ đáy ga mà trắc dọc đã chạy ra (là số liệu đã có trên cùng một file cad)

Rất cảm ơn nếu bác viết lisp này sớm, vì em cũng tìm mờ mắt trên các diễn đàn thì không thấy ai viết tiện ích này cho cad, mà bọn em thường phải làm tay rất mất công.

http://www.cadviet.com/upfiles/3/10114_thoat_nuoc_tuyen_k.dwg

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

Chào bác phamthanhbinh, diễn giải như thế này trong trường hợp không upload file được yêu cầu của em

- em có chạy trắc dọc thoát nước ra được số liệu trên cad có cao độ mặt đất và cao độ đáy ga

- em cần thể hiện trên bình đồ tại các điểm hố ga có cao độ mặt đất và cao độ đáy ga mà trắc dọc đã chạy ra (là số liệu đã có trên cùng một file cad)

Rất cảm ơn nếu bác viết lisp này sớm, vì em cũng tìm mờ mắt trên các diễn đàn thì không thấy ai viết tiện ích này cho cad, mà bọn em thường phải làm tay rất mất công.

http://www.cadviet.com/upfiles/3/10114_thoat_nuoc_tuyen_k.dwg

Hề hề hề,

Xem qua bản vẽ bạn gửi lên, thú thực là dân ngoại ngạch nên mình hiểu chưa rõ lắm. Xin phép đưa ra một số ý kiến để bạn tham khảo và kết luận lại vấn đề, từ đó mới có thể viết lisp được bạn ạ.

1/- Trên trắc dọc của bạn các vị trí hố ga được đánh dấu bởi một block c và một text, Khoảng cách từ vị trí đặt block c này tới các text ghi cao độ mặt đất và cao đô đáy cống có như nhau đối với tất cả các hố ga hay không và có như nhau trong tất cả các bản vẽ bạn sử dụng hay không???

2/- Có hai tên gọi mà mình đoán là chỉ cùng một thứ đó là Cốt mặt đất và cao độ miệng hố ga cũng như cao độ đáy cống và cốt đáy mương. Như vậy có đúng không???

3/- Trên bình đồ (mình đoán vậy) các hố ga dược đánh dấu bởi một hình vuông và được chú thích bởi một block có chứa thuộc tinh có tên là A20 và hai text ghi cao độ mặt đất và cao độ đáy cống. Vị trí tương đối của các text này so với block A20 là không giống nhau. Vì sao vậy??? Tại sao bạn không nhét luôn hai text cao độ này vào trong cùng block thuộc tính A20, như vậy sẽ làm cho bản vẽ cân đối và đẹp hơn chứ nhỉ???

4/- Vị trí tương đối giữa điểm đặt các chú thích này so với vị trí hình vuông củ hố ga cũng rất tùy ý, không theo một quy tắc nhất định nào (hay là có quy tắc mà mình chưa biết). Do vậy nên các đường gióng màu đó cũng rất khó xác định trước. Nên chăng có một quy định rõ ràng cho nó để người viết lisp có thể thuận tiện hơn. Mình xin đưa ra hai giải pháp như sau"

a/- Đoạn nằm nằm ngang của đường gióng này sẽ cho vào trong block thuộc tính, Như vậy tất cả các chú thích sẽ trông rất đều nhau và đẹp mắt. Đoạn xiên góc sẽ được vẽ khi ínert block thuộc tính tùy theo vị trí đặt block so với vị trí hố ga thực.

b/- Toàn bộ đường gióng này đều được nhét vào trong block thuộc tính và như vậy tất cả các ghi chú đều có vị trí tương đối so với vị trí hố ga thực là như nhau. Cach này tuy khá tiện lợi cho người viết lisp nhưng không tiện lắm cho người dùng bởi thực tế trên bản vẽ có khi có nhiều chi tiết đối tượng khác nằm trùng lên phần ghi chú gây phản cảm.

Nếu có thể bạn hãy tạo một block thuộc tính mẫu theo ý bạn và gửi nó cho mình để minh đỡ công làm lụi. Tuy mình có thể làm được song nó có thể lại không đẹp như bạn mong muốn. Con mắt thẩm mỹ của minh có tật nặng bạn ạ.

5/- Trên trắc dọc của bạn không thể hiện tọa độ của các vị trí đặt hố ga (hay là có mà mình không nhận ra) và như vậy thì các bạn xác định vị trí hố ga trên bình đồ ra sao??? Toạ độ hố ga trên bình đồ có theo một chuẩn mốc nào không hay là bạn tùy ý chọn chuẩn khi vẽ ???

Theo mình nghĩ thì để lisp có thể chạy chính xác, rất cần có các thông tin về tọa độ của hố ga trên bình đồ bạn vẽ. Bạn có thể cung cấp các thông tin này cùng với trắc dọc hoặc một bảng thống kê nào đó hay không???

 

Việc viết lisp rất cần có những thông tin chi tiết như trên bởi mình không cùng chuyên ngành của bạn. Do vậy nên có những điều mình không hiểu rất mong bạn thông cảm và giải đáp sớm. 

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  

×