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

[yêu cầu] Nhờ viết lisp vẽ thống kê hư hỏng cục bộ mặt đường

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

Chào mọi người em có một vấn đề xin nhờ mọi người giúp đỡ.

Em làm thống kê hư  hỏng mặt đường, cần viết lisp theo yêu cầu lấy số liệu từ txt và vẽ trên cad. File số liệu có dạng :

điểm đầu<tab>điểm cuối<tab>cách mép<tab>bề rộng<tab>loại hư  hỏng

 

20        25        1          2          1

30        40        4          2          2

70        75        1.5       1.5       1

 

Yêu cầu : như bản vẽ

-         vẽ hình chữ nhật dựa trên điểm đầu điểm cuối bề rộng và cách mép bao nhiêu

-         hatch hình chữ nhật vừa vẽ theo loại hư hỏng nếu loại 1 thì hatch khác loại 2

-         ghi text lý trình như bản vẽ đính kèm

-         ghi text chiều rộng và chiều dài chữ nhật

 

Em chỉnh theo lisp trên diễn đàn rồi mà chưa được, trình độ hạng chế nên nhờ mọi người viết để học hỏi thêm.

Em cảm ơn!!

file bản vẽ:

http://www.cadviet.com/upfiles/3/3942_sscb_mat_duong.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 mọi người em có một vấn đề xin nhờ mọi người giúp đỡ.

Em làm thống kê hư  hỏng mặt đường, cần viết lisp theo yêu cầu lấy số liệu từ txt và vẽ trên cad. File số liệu có dạng :

điểm đầu<tab>điểm cuối<tab>cách mép<tab>bề rộng<tab>loại hư  hỏng

 

20        25        1          2          1

30        40        4          2          2

70        75        1.5       1.5       1

 

Yêu cầu :

-         vẽ hình chữ nhật dựa trên điểm đầu điểm cuối bề rộng và cách mép bao nhiêu

-         hatch hình chữ nhật vừa vẽ theo loại hư hỏng nếu loại 1 thì hatch khác loại 2

-         ghi text (định dạng center để có chỉnh theo tỷ lệ cũng ko bị nhảy khỏi vị trí nhiều) vào phía dưới  và trên nếu ở nữa mặt bên kia. Cứ để mặt định trong lisp là 7 cần thì em tự chỉnh hoặc em tự thêm chổ nhập bề rộng mặt đường ạ

-         ghi text chiều rộng và chiều dài chữ nhật

 

Em chỉnh theo lisp trên diễn đàn rồi mà chưa được, trình hạng chế nên nhờ mọi người viết để học hỏi thêm.

Em cảm ơn!!

http://www.cadviet.com/upfiles/3/3942_sccb.txt

http://www.cadviet.com/upfiles/3/3942_sscb_mat_duong.dwg

Hề hề hề,

Chả hiểu anh bạn này học trường nào ra, nhưng ngó bộ chửa hiểu gì về việc mình làm cả.

Cái mình muốn mà cũng không trình bày cho rành rọt và chính xác được thì thật là.....

1/-  Có chắc là tất cả các chỗ hư hỏng trên mặt đường đều vẽ thành hình chữ nhật cả hay không??? Tỷ như cái mép đường nó là một khúc cong thì vẽ kiểu gì???

2/- Cái vụ : ghi text (định dạng center để có chỉnh theo tỷ lệ cũng ko bị nhảy khỏi vị trí nhiều) vào phía dưới  và trên nếu ở nữa mặt bên kia.

là ghi text chi vậy??? Text chỉ giá trị lý trình thì lấy mốc là điểm nào vậy??? Trong trường hợp đường không thẳng thì cái lý trình này được lấy theo mép đường phía nào??? hay lấy theo tim đường???

3/- Cái vụ : Cứ để mặt định trong lisp là 7  

Nghĩa là chi vậy??? Phải chăng bạn muốn nói là mặc định (chứ không phải là mặt định đâu nhé) chiều rộng mặt đường là 7 mét.

4/- Chiều rộng và chiều dài chỗ hư hỏng ghi kiểu nớ có đúng kỹ thuật và dễ hiểu cho người đọc bản vẽ không hè???

5/- Cái : trình hạng chế       

Là cái hạng gì vậy?? Hạng gà, hạng ruồi hay hạng nặng hạng trung.....?

 

Túm lại là nếu bạn còn muốn có sự trợ giúp thì cần nghiêm túc hơn với việc post bài của mình. Cần nói đúng, chính xác và đầy đủ tất cả những điều có liên quan tới vấn đề của bạn. Có vậy người khác mới có thể hiểu và giúp bạn theo đúng ý của bạn được.

Mong bạn lưu tâm.

  • 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

Hề hề hề,

Chả hiểu anh bạn này học trường nào ra, nhưng ngó bộ chửa hiểu gì về việc mình làm cả.

Cái mình muốn mà cũng không trình bày cho rành rọt và chính xác được thì thật là.....

1/-  Có chắc là tất cả các chỗ hư hỏng trên mặt đường đều vẽ thành hình chữ nhật cả hay không??? Tỷ như cái mép đường nó là một khúc cong thì vẽ kiểu gì???

2/- Cái vụ : ghi text (định dạng center để có chỉnh theo tỷ lệ cũng ko bị nhảy khỏi vị trí nhiều) vào phía dưới  và trên nếu ở nữa mặt bên kia.

là ghi text chi vậy??? Text chỉ giá trị lý trình thì lấy mốc là điểm nào vậy??? Trong trường hợp đường không thẳng thì cái lý trình này được lấy theo mép đường phía nào??? hay lấy theo tim đường???

3/- Cái vụ : Cứ để mặt định trong lisp là 7  

Nghĩa là chi vậy??? Phải chăng bạn muốn nói là mặc định (chứ không phải là mặt định đâu nhé) chiều rộng mặt đường là 7 mét.

4/- Chiều rộng và chiều dài chỗ hư hỏng ghi kiểu nớ có đúng kỹ thuật và dễ hiểu cho người đọc bản vẽ không hè???

5/- Cái : trình hạng chế       

Là cái hạng gì vậy?? Hạng gà, hạng ruồi hay hạng nặng hạng trung.....?

 

Túm lại là nếu bạn còn muốn có sự trợ giúp thì cần nghiêm túc hơn với việc post bài của mình. Cần nói đúng, chính xác và đầy đủ tất cả những điều có liên quan tới vấn đề của bạn. Có vậy người khác mới có thể hiểu và giúp bạn theo đúng ý của bạn được.

Mong bạn lưu tâm.

Anh xem qua bản vẽ để hiểu ý em hơn

1/ Đây là bình đồ duỗi thẳng, nên hư hỏng trên đường đều được cắt vuông thành sắc cạnh để dễ thi công bảo dưỡng

2/ Text ghi lý trình theo như bản vẽ

3/ Để mặt định bề rộng đường vì ghi text có thể bên trái hoặc bên phải (biến cách mép > 3.5m thì ghi text bên trái còn < thì ghi bên phải)

4/ Cái này em cũng chưa biết trình bày sao, nếu được ghi vào tâm hình chữ nhật dạng {dài x rộng m}

 

Có gì mong mọi người chỉ bảo thê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

mọi người bớt chút thời gian giúp em với ạ  :mellow: . Cảm ơn

Hề hề hề,

Thiệt tình là mình chả muốn làm cái ni do chả hiểu hết ý bạn. Song thấy bạn cần nên đành đoán mò theo hình vẽ mà làm vậy. 

Đây chỉ là bản nháp nên có thể chưa đúng ý bạn, bạn có thể tự chỉnh lại về kiểu hatch cũng như màu sắc mà bạn muốn.

Bạn hãy dùng thử coi đã ưng cái bụng chưa nhé. Nếu chưa ưng thì post lên nói rõ vì sao chưa ưng. Cố gắng trình bày cho rõ ràng để may ra mình có thể hiểu mà sửa theo ý bạn.

 

 

(defun c:vhhmd (/ oldos p h e e1 olcol fn f dlst ln lst)
(vl-load-com)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(command "undo" "be")
(setq p (getpoint "\n Chon diem bat dau ve")
          h (getreal "\n Nhap chieu rong mat duong: ") )
(if (not h) (setq h 7))
(command "line" p (polar p 0 100) "")
(setq e (entlast))
(command "copy" e "" p (polar p (/ pi 2) h))
(if (not (tblsearch "ltype" "center2"))
    (command "linetype" "l" "center2" "")
)
(command "linetype" "s" "center2" "")
(setq olcol (getvar "cecolor"))
(setvar "cecolor" "6")
(command "line" (polar p (/ pi 2) (/ h 2.0)) (list (+ (car p) 100) (+ (cadr p) (/ h 2.0))) "")
(setvar "cecolor" olcol)
(command "linetype" "s" "bylayer" "")
(setq  fn (getfiled "Select Data File" "" "txt" 0)
            f (open fn "r")
            dlst (list)
)
(while (setq ln (read-line f))
      (setq dlst (append dlst (list ln)))
)
(foreach d dlst
    (setq lst (separate d "\t"))
    (command "rectangle" (list (+ (car p) (atof (nth 0 lst))) (+ (cadr p) (atof (nth 2 lst))))
                                           (list (+ (car p) (atof (nth 1 lst))) (+ (cadr p) (atof (nth 2 lst)) (atof (nth 3 lst))))  )
    (setq e1 (entlast))
    (if (= (nth 4 lst) "1")
         (command "hatch" "ansi31" 10 0 e1 "")
         (command "hatch" "ansi31" 10 90 e1 "")
    )
   (command "text" "j" "mc" (list (+ (car p) (/ (abs (- (atof (nth 0 lst)) (atof (nth 1 lst)))) 2) (atof (nth 0 lst))) 
                                                      (+ (cadr p) (atof (nth 2 lst)) (/ (atof (nth 3 lst)) 2))) 1 0
                                                      (strcat (nth 3 lst) " x " (rtos (abs (- (atof (nth 0 lst)) (atof (nth 1 lst)))) 2 0)))
    (if (<= (atof (nth 2 lst)) (/ h 2))
        (progn
              (command "text" "j" "mc" (list (+ (car p) (atof (nth 0 lst))) (- (cadr p) 2)) 1 270 (nth 0 lst))
              (command "text" "j" "mc" (list (+ (car p) (atof (nth 1 lst))) (- (cadr p) 2)) 1 270 (nth 1 lst))
        )
        (progn
              (command "text" "j" "mc" (list (+ (car p) (atof (nth 0 lst))) (+ (cadr p) h 2)) 1 270 (nth 0 lst))
              (command "text" "j" "mc" (list (+ (car p) (atof (nth 1 lst))) (+ (cadr p) h 2)) 1 270 (nth 1 lst))
        )
    )
)
(command "undo" "e")
(setvar "osmode" oldos)
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun Separate (S sym / i L ch)
(setq i 0 L nil)
(while (< i (strlen S))
 (setq i (1+ i) ch (substr S i 1))
 (if (= ch sym) (progn
(setq
     L (append L (list (substr S 1 (- i 1))))
     S (substr S (1+ i) (- (strlen S) i))
     i 0
)
      )) 
)
(append L (list S))
)

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ọi người bớt chút thời gian giúp em với ạ  :mellow: . Cảm ơn

Hề hề hề,

Cái ông chủ thớt này chắc bán sạp rồi. Kêu như vạc, vậy mà sau khi được giúp, chả thấy í ới gì nữa. Không hiểu cái thớt này có còn nên treo nữa không hè????

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ái ông chủ thớt này chắc bán sạp rồi. Kêu như vạc, vậy mà sau khi được giúp, chả thấy í ới gì nữa. Không hiểu cái thớt này có còn nên treo nữa không hè????

http://www.cadviet.com/upfiles/3/3942_vhhmd.lsp

 

hì thanks bác Phamthanhbinh không theo dõi em cặm cuội vẽ tay mấy bữa nay xong hết rồi :(, để dành sữ dụng lần sau vậy

Em test rồi chương trình chạy tốt lắm.

Em có chỉnh lại theo nhu cầu của em, bác nào cũng phải làm những việc không giống ai như em thì dùng.

mẫu số liệu, mẫu bảng vẽ đính kèm theo

http://www.cadviet.com/upfiles/3/3942_solieu_hhcb.txt

 

http://www.cadviet.com/upfiles/3/3942_km2__km49500.dwg

 

P/s: chương trình chỉ chạy tốt khi tạo linetype và textstyle trước

 

Thanks 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

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  

×