Rated 5/5 based on 240179 internet user reviews

Đến nội dung


Hình ảnh
- - - - -

Tính toán khối lượng san nền


  • Please log in to reply
15 replies to this topic

#1 bowxman

bowxman

    biết vẽ pline

  • Members
  • PipPip
  • 69 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 12 April 2007 - 01:02 PM

Mình đang cần 1 file lisp để tính toán khối lượng san nền, đề bài như sau:
Bình đồ hiện trạng là một lưới 3d mesh bao gồm các tọa độ điểm(theo đường đồng mức hiện trạng)
Bình đồ thiết kế cũng là lưới 3d mesh bao gồm các tọa độ điểm (theo đường đồng mức thiết kế)
Ranh đất là polyline khép kín
Giao của 3 cái này sẽ là khối lượng (thể tích).
Tuy nhiên có chỗ khó như sau:
Nếu giao của nó là 1 khối thì khối lượng (thể tích) là chỉ có kl đào (hoặc đắp)
Nếu giao của nó thành nhiều khối thì vừa đào, vừa đắp
  • 0

#2 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 3868 Bài viết
Điểm đánh giá: 4362 (đỉnh cao)

Đã gửi 12 April 2007 - 02:14 PM

Có một phương pháp như sau:
Bước 1. Tạo 1 mặt mesh, là phần đất giao của 2 phần thiết kế và hiện trạng (khối C). Đây là phần không đào cũng không đắp.
Bước 2. Tính khối lượng đào bằng cách lấy hiệu của khối hiện trạng (khối A) trừ đi cho khối C.
Bước 3. Tính khối lượng đắp bằng cách lấy hiệu của khối thiết kế (khối B ) trừ đi cho khối C.

Diễn giải: C là giao của A và B. Nên phần dư của A-C là phần phải đào đi, phần dư của B-C là phần phải đắp vào. Nếu chỉ đào thì C=B. nếu chỉ đắp thì C=A.

Có thể sử dụng chức năng Create > Compound Object > boolean trong 3DSMax để tìm giao của các khối mesh (bao gồm cả giao của hình lăng trụ có tiết diện là biên khu đất). Sau đó, sử dụng hàm tính khối lượng: V = (h1+h2+h3)*S/3 để tính khối lượng của từng tam giác trên mesh rồi cộng lại để ra khối lượng của 3 khối A, B và C.

http://www.cadviet.c...iles/SanNen.txt
  • 0

#3 bowxman

bowxman

    biết vẽ pline

  • Members
  • PipPip
  • 69 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 21 April 2007 - 10:10 PM

Cách làm này thì ai đọc tựa đề cũng biết cả bác à, xin cảm ơn bác.
Cái em cần là một lisp nhập số liệu và tính toán bằng các số liệu đó, vì khi bảo vệ người ta chỉ nhìn vào số liệu, mong bác giúp em.
  • 0

#4 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 3868 Bài viết
Điểm đánh giá: 4362 (đỉnh cao)

Đã gửi 22 April 2007 - 01:50 AM

Lisp làm toàn bộ rất khó vì phải mô hình hóa địa hình.

Có cách làm tay khá đơn giản tận dụng chức năng của 3DSMax:
Vào 3DSMax:
- Nhập đường đồng mức từ file DWG.
- Dùng lệnh Terrain để biến đường đồng mức thành mặt.
- Dùng lệnh Shell để biến mặt thành khối.
- Dùng lệnh Boolean để giao các khối (khối A, Khối B và khối trụ tạo bởi đường biên khu đất) để tạo thành khối C.
- Export khối A, Khối B, Khối C sang CAD.

Từ mặt mesh này trong AutoCAD chúng ta có thể tính được khối tích của nó (của 3 khối A, B, C). Bằng cách explode chúng ra thành 3Dface, dùng lisp để tính khối tích của các hình lăng trụ tạo bởi các 3DFace này với mặt phẳng x0y. Tổng của chúng chính là khối tích của miền giới hạn bởi địa hình và mặt phẳng xoy. Khối tích được tính theo công thức: V = S * (z1+z2+z3)/3.

Mã lisp như sau:

(defun c:V3DF ()
(defun ttone (ent)
(setq
tt (entget ent)
p1 (cdr (assoc 10 tt))
p2 (cdr (assoc 11 tt))
p3 (cdr (assoc 12 tt))
x1 (car p1)
y1 (cadr p1)
z1 (caddr p1)
x2 (car p2)
y2 (cadr p2)
z2 (caddr p2)
x3 (car p3)
y3 (cadr p3)
z3 (caddr p3)
S (abs (/ (+
(* (+ y1 y2) (- x1 x2))
(* (+ y2 y3) (- x2 x3))
(* (+ y3 y1) (- x3 x1))
)
2.0
)
)
V (/ (* s (+ z1 z2 z3)) 3.0)
VTong (+ VTong V)
)
)
;;;--------------------Main -----------------
(setq Vtong 0.0
ss3f (ssget '((0 . "3DFACE")))
sodt (cond
(ss (sslength ss))
(t 0)
)
index 0
)
(repeat sodt
(setq entdt (ssname ss index)
index (1+ index)
)
(ttone entdt)
)
(princ "\n*****************************")
(princ "\nThe tich la: ")
(princ Vtong)
(princ "\n*****************************")
(princ)
)

  • 0

#5 bowxman

bowxman

    biết vẽ pline

  • Members
  • PipPip
  • 69 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 22 April 2007 - 03:50 AM

Mặc dù không nhập được số liệu, nhưng cách làm của bác wá hay, mở cho em một hướng đi mới.
Không biết phải nói cám ơn bác thế nào cho phải, thành thật cảm ơn bác rất nhiều. Hậu tạ bác sau nhé!!
Nếu em làm thành công chương trình này thì công lớn là của bác, nếu em nhớ ko nhầm thì trong Cad có thể làm terrain từ các đường đồng mức, số liệu đầu vào chỉ cần nhập cho các đường đồng mức (đơn giản rồi).
Một lần nữa xin cảm ơn bác!
  • 0

#6 smilingman82

smilingman82

    biết vẽ arc

  • Members
  • PipPip
  • 49 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 10 August 2008 - 12:31 AM

Mặc dù không nhập được số liệu, nhưng cách làm của bác wá hay, mở cho em một hướng đi mới.
Không biết phải nói cám ơn bác thế nào cho phải, thành thật cảm ơn bác rất nhiều. Hậu tạ bác sau nhé!!
Nếu em làm thành công chương trình này thì công lớn là của bác, nếu em nhớ ko nhầm thì trong Cad có thể làm terrain từ các đường đồng mức, số liệu đầu vào chỉ cần nhập cho các đường đồng mức (đơn giản rồi).
Một lần nữa xin cảm ơn bác!

vừa đọc lại bài này của bác ,,kéo lên cho anh em san nền ngâm cúu lại , thấy nó hay wá , ko nỡ để trôi mất
  • 0

#7 minhnghi

minhnghi

    biết vẽ arc

  • Members
  • PipPip
  • 41 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 11 August 2008 - 02:44 AM

Lisp làm toàn bộ rất khó vì phải mô hình hóa địa hình.

Có cách làm tay khá đơn giản tận dụng chức năng của 3DSMax:
Vào 3DSMax:
- Nhập đường đồng mức từ file DWG.
- Dùng lệnh Terrain để biến đường đồng mức thành mặt.
- Dùng lệnh Shell để biến mặt thành khối.
- Dùng lệnh Boolean để giao các khối (khối A, Khối B và khối trụ tạo bởi đường biên khu đất) để tạo thành khối C.
- Export khối A, Khối B, Khối C sang CAD.

Từ mặt mesh này trong AutoCAD chúng ta có thể tính được khối tích của nó (của 3 khối A, B, C). Bằng cách explode chúng ra thành 3Dface, dùng lisp để tính khối tích của các hình lăng trụ tạo bởi các 3DFace này với mặt phẳng x0y. Tổng của chúng chính là khối tích của miền giới hạn bởi địa hình và mặt phẳng xoy. Khối tích được tính theo công thức: V = S * (z1+z2+z3)/3.

Mã lisp như sau:

(defun c:V3DF ()  (defun ttone (ent)    (setq      tt    (entget ent)      p1    (cdr (assoc 10 tt))      p2    (cdr (assoc 11 tt))      p3    (cdr (assoc 12 tt))      x1    (car p1)      y1    (cadr p1)      z1    (caddr p1)      x2    (car p2)      y2    (cadr p2)      z2    (caddr p2)      x3    (car p3)      y3    (cadr p3)      z3    (caddr p3)      S	    (abs (/ (+		      (* (+ y1 y2) (- x1 x2))		      (* (+ y2 y3) (- x2 x3))		      (* (+ y3 y1) (- x3 x1))		    )		    2.0		 )	    )      V	    (/ (* s (+ z1 z2 z3)) 3.0)      VTong (+ VTong V)    )  )  ;;;--------------------Main -----------------  (setq	Vtong 0.0	ss3f  (ssget '((0 . "3DFACE")))        sodt  (cond		(ss (sslength ss))		(t 0)	      )		index 0  )  (repeat sodt    (setq entdt	(ssname ss index)	  index	(1+ index)    )    (ttone entdt)      )  (princ "\n*****************************")  (princ "\nThe tich la: ")  (princ Vtong)  (princ "\n*****************************")  (princ))

Bác Hoành ạh, về Cad thì em phục bác, nhưng mà còn về nhiều cái .......khác thì....hehe, bác không bằng em đâu. Nhưng rất cảm ơn bác về bài viết này, chỉ giúp em sự liên hệ giữa các phần mềm :s_big:
  • 0
- Gà con vẽ CAD -

#8 kieumanh

kieumanh

    biết vẽ rectang

  • Members
  • PipPip
  • 86 Bài viết
Điểm đánh giá: 140 (tàm tạm)

Đã gửi 11 August 2008 - 08:29 AM

Bác Hoành ạh, về Cad thì em phục bác, nhưng mà còn về nhiều cái .......khác thì....hehe, bác không bằng em đâu. Nhưng rất cảm ơn bác về bài viết này, chỉ giúp em sự liên hệ giữa các phần mềm :s_big:

Tôi cũng biết về san lấp và nạo vét, lại làm kiến trúc và xây dựng, biết dùng Cad còn 3d Max thì tàm tạm. Thấy bài viết này của bác Hoành rất hay, không phải nịnh bợ addmin nhưng để có được bài viết này, ngoài kiến thức sâu rộng về hai công cụ này còn phải có sự sáng tạo nữa đấy chứ. Nhưng có điều lúc làm hồ sơ thẩm định thì hơi khó giải trình cho nhà đầu tư. Cái này dùng để test kết quả tính "bo" bằng tay thôi. Tôi đi làm thấy công ty nào không chịu bỏ tiền ra mua phần mềm tự động đều phải làm tay hết. Học sử dụng phần mềm tính toán hồi còn đi học thấy thật là phí vì không sử dụng sợ để lâu quên mất.
Tài liệu hướng dẫn sử dụng này tôi lấy trong diễn đàn ĐHBKĐN:
Hướng dẫn sử dụng Soft Desk
http://www.cadviet.c...ng_SoftDesk.rar
Các bác tìm hiểu xem có phù hợp mục đích sử dụng không nhé.
  • 0
Becoming Rich - How to do It
http://waystobecomerich.com
Làm giầu quá khó

#9 missone's

missone's

    biết vẽ rectang

  • Members
  • PipPip
  • 82 Bài viết
Điểm đánh giá: 6 (bình thường)

Đã gửi 11 August 2008 - 09:41 AM

Bác Hoành ạh, về Cad thì em phục bác, nhưng mà còn về nhiều cái .......khác thì....hehe, bác không bằng em đâu. Nhưng rất cảm ơn bác về bài viết này, chỉ giúp em sự liên hệ giữa các phần mềm :s_big:

Thế điểm mạnh của bác là gì- lĩnh vực nào? - sao không chỉ ra vài chiêu cho anh em học hỏi với!
  • 0
neverforever

#10 lavender

lavender

    biết vẽ line

  • Members
  • PipPip
  • 24 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 24 February 2010 - 09:33 AM

Bác Hoành ạh, về Cad thì em phục bác, nhưng mà còn về nhiều cái .......khác thì....hehe, bác không bằng em đâu. Nhưng rất cảm ơn bác về bài viết này, chỉ giúp em sự liên hệ giữa các phần mềm :cheers:

:cheers:). Chưa khảo mà đã xưng. Nghe vui tai các bác nhỉ!
  • 0

#11 conan3134

conan3134

    biết pan

  • Members
  • Pip
  • 5 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 21 February 2012 - 04:10 PM

Đang nghiên cứu về vấn đề này, Oánh dấu để nhớ
  • 0

#12 ngochien.hau

ngochien.hau

    biết pan

  • Members
  • Pip
  • 8 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 14 July 2013 - 04:52 PM

em dùng lisp nội suy ra chiều dài độ dốc với khối lượng đào đắp

nhưng tại sao nó lại bị lỗi ntn ạ

mọi khi em vẫn dùng bộ lisp này bình thường ạ

 

ai từng gặp lỗi này chỉ dẫn em với ạ


  • 1

#13 ngochien.hau

ngochien.hau

    biết pan

  • Members
  • Pip
  • 8 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 14 July 2013 - 04:53 PM

em dùng lisp nội suy ra chiều dài độ dốc với khối lượng đào đắp

nhưng tại sao nó lại bị lỗi ntn ạ ( toàn là 0.000)

mọi khi em vẫn dùng bộ lisp này bình thường ạ

 

ai từng gặp lỗi này chỉ dẫn em với ạ121241_untitled_3.jpg


  • 1

#14 doanduyhung

doanduyhung

    biết vẽ spline

  • Members
  • PipPip
  • 90 Bài viết
Điểm đánh giá: 40 (tàm tạm)

Đã gửi 14 July 2013 - 07:57 PM

Giống cái này ko

  • 0

#15 ngochien.hau

ngochien.hau

    biết pan

  • Members
  • Pip
  • 8 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 15 July 2013 - 07:12 AM

Doaduyhung:
em khong hiểu ý bác lắm


  • 0

#16 doanduyhung

doanduyhung

    biết vẽ spline

  • Members
  • PipPip
  • 90 Bài viết
Điểm đánh giá: 40 (tàm tạm)

Đã gửi 15 July 2013 - 08:33 AM

giống ý ban đầu của bowxman: có hai địa hình tự nhiên và thiết kế và ranh đất rồi tinh ra khối lượng đào đắp
  • 0