Đến nội dung


Hình ảnh

Tính thể tích, trọng tâm, momen


  • Please log in to reply
29 replies to this topic

#21 tienlagiay_dxt

tienlagiay_dxt

    biết lệnh trim

  • Members
  • PipPipPip
  • 191 Bài viết
Điểm đánh giá: 185 (tàm tạm)

Đã gửi 11 July 2008 - 09:29 AM

Bạn tìm hiểu lệnh loft (cad 2007 trở đi), nó có khả năng vẽ chính xác mô hình 3Dsolid khối đất của bạn.

Rất cảm ơn bạn, tuy nhiên làm theo cách này thì khối lượng công việc tăng lên rất nhiều (yêu cầu về độ chính xác của mình lại ko cần cao như vậy, đồng nghĩa với việc lãng phí công sức), có lẽ landesktop sẽ giúp được việc này, nhưng mình lại chưa biết cách làm, Ssg nếu biết xin chỉ giúp, hoặc giả có cách nào khác ko?
  • 0

#22 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 11 July 2008 - 10:25 AM

Rất cảm ơn bạn, tuy nhiên làm theo cách này thì khối lượng công việc tăng lên rất nhiều (yêu cầu về độ chính xác của mình lại ko cần cao như vậy, đồng nghĩa với việc lãng phí công sức), có lẽ landesktop sẽ giúp được việc này, nhưng mình lại chưa biết cách làm, Ssg nếu biết xin chỉ giúp, hoặc giả có cách nào khác ko?

Bó tay, ssg không rành mảng này. Có lẽ các bạn chuyên làm về trắc địa, san nền, giao thông... có cao kiến gì đó chăng?
  • 0

#23 tuannguyen314169

tuannguyen314169

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 297 Bài viết
Điểm đánh giá: 57 (tàm tạm)

Đã gửi 11 July 2008 - 11:36 AM

Đây là bản vẽ của bạn, mình tạo thêm khối 3D bên cạnh (gần giống chứ chưa giống hoàn toàn). Khác biệt cơ bản là:
1- Hình bên trái là hình của bạn vẽ. Acad chỉ hiểu đó là một tập hợp rời rạc của 7 line và 2 đường spline trong không gian
2- Hình bên phải là 1 đối tượng duy nhất, đó là 3Dsolid. Bạn có thể dùng lệnh massprop cho khối này:

http://www.cadviet.c...s/TinhV1_1b.zip

Khi bạn select vào một đối tượng bất kỳ nào đó và vào properties (đơn giản nhất là gõ "mo"), trong bảng "properties", ngay trong cái combo_box trên cùng, bạn sẽ thấy rõ loại đối tượng.

Xem ra là bạn chưa biết những điều cơ bản nhất về 3D. Theo mình, bạn phải có tài liệu (sách hoặc ebook) và tập làm các bài cơ bản theo hướng dẫn. Nói chung, thao tác với 3D cũng tương đối phức tạp, không thể trả lời bằng một vài bài viết trên diễn đàn. Chúng ta chỉ có thể trao đổi với nhau một khi bạn đã nắm được một số kiến thức và kỹ năng tối thiểu nào đó về 3D. OK?

Rất cảm ơn bạn đã sớm trả lời. Bạn cứ yên tâm những điều mình không hiểu mình sẽ hỏi lại, riêng những điều bạn trao đổi với mình vừa rồi thì có thể nói là mình hiểu. Mình non nớt về nghiệp vụ autocard nhưng mình cũng có một số sách tham khảo và những người bạn giúp đỡ có lẽ mình sẽ sớm hiểu về lĩnh vực này.Tuy nhiên đây là vấn đề mình cần giải quyết để tính được thể tích và trọnng tâm.
Hình của bạn gởi cho mình rất đẹp, nhưng sai số tính toán lớn so với hình của mình và không phục vụ được cho công việc tính toán của mình cũng như những hình tương tự (TínhV1) vừa rồi mình gởi cho bạn.
Mong bạn tính giúp dùm và sớm trả lời. Cảm ơn.
  • 0

#24 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 11 July 2008 - 02:35 PM

Rất cảm ơn bạn đã sớm trả lời. Bạn cứ yên tâm những điều mình không hiểu mình sẽ hỏi lại, riêng những điều bạn trao đổi với mình vừa rồi thì có thể nói là mình hiểu. Mình non nớt về nghiệp vụ autocard nhưng mình cũng có một số sách tham khảo và những người bạn giúp đỡ có lẽ mình sẽ sớm hiểu về lĩnh vực này.Tuy nhiên đây là vấn đề mình cần giải quyết để tính được thể tích và trọnng tâm.
Hình của bạn gởi cho mình rất đẹp, nhưng sai số tính toán lớn so với hình của mình và không phục vụ được cho công việc tính toán của mình cũng như những hình tương tự (TínhV1) vừa rồi mình gởi cho bạn.
Mong bạn tính giúp dùm và sớm trả lời. Cảm ơn.

Sai số lớn là đương nhiên, vì ssg đã nói rồi, khối 3d mình dựng ở bài trước chỉ là gần đúng. Mình nghĩ rằng hình bạn đưa lên chỉ mang tính ví dụ minh hoạ chứ không nghĩ rằng bạn cần tính chính xác nó. Nếu thật sự bạn muốn thì đây:

http://www.cadviet.c...s/TinhV1_1c.zip

Khối 3dsolid màu xanh trùng khít với tất cả các đường khung dây màu đỏ của bạn. Có điều, mặt trên của vật thể không phải là mặt phẳng vì 4 điểm xác định nó không đồng phẳng, mình xem như là 2 mặt phẳng giao nhau.
  • 0

#25 tuannguyen314169

tuannguyen314169

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 297 Bài viết
Điểm đánh giá: 57 (tàm tạm)

Đã gửi 11 July 2008 - 07:40 PM

Sai số lớn là đương nhiên, vì ssg đã nói rồi, khối 3d mình dựng ở bài trước chỉ là gần đúng. Mình nghĩ rằng hình bạn đưa lên chỉ mang tính ví dụ minh hoạ chứ không nghĩ rằng bạn cần tính chính xác nó. Nếu thật sự bạn muốn thì đây:

http://www.cadviet.c...s/TinhV1_1c.zip

Khối 3dsolid màu xanh trùng khít với tất cả các đường khung dây màu đỏ của bạn. Có điều, mặt trên của vật thể không phải là mặt phẳng vì 4 điểm xác định nó không đồng phẳng, mình xem như là 2 mặt phẳng giao nhau.

Rất cảm ơn vì bạn đã giúp mình rất nhiệt tình. Bạn cứ yên tâm hướng dẫn vì mình có đọc tài liệu và hỏi các bạn chuyên về autocard một số lệnh như union, subtract,intersect dùng để cộng ,trừ và giao các solid hoặc lệnh Draw>Modeling>Loft để tạo các solid bằng cách nối các biên dạng theo đường cong (guides) theo đường dẫn (path) hoặc vào Loft settings để nối các biên dạng lại với nhau như: Reuled,smooth, normal,draft angel nhưng mình không chắc chắn lắm. Kiến thức và thời gian mình có hạn mà công việc thì quá nhiều vì vậy bạn thông cảm giúp mình cụ thể để mình hiểu và làm được vấn đề trên (tính V1-1c).
Đó chỉ là một trong những hình đơn giản để mình làm được những hình phức tạp hơn và sai số không quá 0,5% so với yêu cầu tính toán.
Số điện thoại bàn, di động của mình là (068.824257-0919650499) và bạn có thể cho mình số điện thoại bàn và di động để mình dễ liên lạch hơn
Chúc bạn thành công. Mong bạn sớm trả lời.
  • 0

#26 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 13 July 2008 - 08:11 AM

Rất cảm ơn vì bạn đã giúp mình rất nhiệt tình. Bạn cứ yên tâm hướng dẫn vì mình có đọc tài liệu và hỏi các bạn chuyên về autocard một số lệnh như union, subtract,intersect dùng để cộng ,trừ và giao các solid hoặc lệnh Draw>Modeling>Loft để tạo các solid bằng cách nối các biên dạng theo đường cong (guides) theo đường dẫn (path) hoặc vào Loft settings để nối các biên dạng lại với nhau như: Reuled,smooth, normal,draft angel nhưng mình không chắc chắn lắm. Kiến thức và thời gian mình có hạn mà công việc thì quá nhiều vì vậy bạn thông cảm giúp mình cụ thể để mình hiểu và làm được vấn đề trên (tính V1-1c).
Đó chỉ là một trong những hình đơn giản để mình làm được những hình phức tạp hơn và sai số không quá 0,5% so với yêu cầu tính toán.
Số điện thoại bàn, di động của mình là (068.824257-0919650499) và bạn có thể cho mình số điện thoại bàn và di động để mình dễ liên lạch hơn
Chúc bạn thành công. Mong bạn sớm trả lời.

Xin trả lời bạn một số ý:

1- Mục đích của diễn đàn là để nhiều người cùng tham gia thảo luận và học hỏi lẫn nhau. Theo ssg, nếu không cần thiết lắm, mọi vấn đề chuyên môn bạn cứ nêu lên diễn đàn. Nếu có vấn đề gì không tiện nêu công khai, bạn có thể liên lạc với ssg qua email: maickkha@yahoo.com.vn

2- Các hình khối tương tự như của bạn, dùng lệnh loft là hợp lý. Bạn có thể vào Help để thấy các điều kiện sử dụng:

Hình đã gửi

Cụ thể, 2 cross section của bạn không bảo đảm yêu cầu (gồm line + spline). Mình đã chuyển cái spline thành pline bằng lisp. Sau đó joint với các line còn lại thành 1 pline duy nhất -> bảo đảm điều kiện của loft. Nếu phức tạp hơn, có thể tạo solid từng phần rồi dùng các lệnh union, subtract, intersect để xử lý.

3- Lisp convert spline -> pline mình đã post ở đâu đó rồi. Tìm lại cũng... mệt, post lại ở đây:

;;;***********************************************************
;;;CONVERT TO PLINES PROGRAM WITH FULL COMMENTS!
;;;Convert all objects: Line, Pline, Spline, Arc, Circle, Ellipse_
;;;to Plines. Length of 1 segment is specified by user
;;;Copy & Paste to Notepad, Saveas *.lsp, Appload then Type C2P to run
;;;Happy New Year 2008!
;;;Written by ssg - January 2008 - www.cadviet.com
;;;***********************************************************

;;;-------------------------------------------------------------
(defun makepl ( e d1 / ps pe d d2 p2) ;;;Make pline along curve e. Length of 1 segment = d1
(vl-load-com) ;;;Load Visual LISP extensions before use vlax-xxxx functions
(setq
ps (vlax-curve-getStartPoint e) ;;;Start point
pe (vlax-curve-getEndPoint e) ;;;End point
d (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)) ;;;Length of curve e
d2 d1 ;;;Init variable distance
)
(command "pline") ;;;Call pline command
(command ps) ;;;Start point
(while (<= d2 d) ;;;While not over end point pe
(setq p2 (vlax-curve-getPointAtDist e d2)) ;;;Variable point at d2 = length along curve
(command p2) ;;;Continue pline command from current point to p2
(setq d2 (+ d2 d1)) ;;;Increase distance d2 by d1
) ;;;End while
(command pe "") ;;;Pline to pe and finish command
)
;;;-------------------------------------------------------------
(defun C:C2P( / d1 ss oldos i e ans) ;;;Convert to Plines
(if (not d0) (setq d0 0.5)) ;;;Init dividual distance, global variable
(setq d1 (getreal (strcat "\nLength of 1 segment <" (rtos d0) ">:"))) ;;;Input distance
(if d1 (setq d0 d1) (setq d1 d0)) ;;;Reset or get distance
(setq
ss (ssget '((0 . "LINE,LWPOLYLINE,SPLINE,ARC,CIRCLE,ELLIPSE"))) ;;;Selection set
oldos (getvar "osmode") ;;;Save osmode
i 0 ;;;Init counter
)
(setvar "osmode" 0) ;;;Disable osmode
(repeat (sslength ss) ;;;Repeat for all entities in ss
(setq e (ssname ss i)) ;;;Set e for entity with ordinal i in selection set ss
(makepl e d1) ;;;Use makepl function. Make pline along e
(setq i (1+ i)) ;;;Increase counter
)
(initget "Y N") ;;;Init keywords
(setq ans (getkword "\nDelete source objects? [Yes/No] :")) ;;;Get answer from user
(if (= ans "Y") (command "erase" ss "")) ;;;Erase source objects if ans = "y" or "Y"
(setvar "osmode" oldos) ;;;Reset osmode
(princ) ;;;Silent quit
)
;;;-------------------------------------------------------------


4- Khả năng 3D của AutoCAD có hạn, bạn có nhu cầu làm việc nhiều với 3D phức tạp thì nên nghiên cứu các phần mềm chuyên 3D: SolidWorks, Inventor, Rhino... Hoặc cao cấp hơn (và có nhu cầu đối với phần gia công - CAM) thì: MasterCAM, Pro/E, Catia...
Bản thân ssg cũng rất ngại khi phải làm việc nhiều với 3D phức tạp trong CAD. Nhiều mô hình phức tạp mình phải đơn giản hoá bớt đi. Trường hợp bất khả kháng thì phải dùng các phần mềm khác để xử lý và có thể trả kết quả về cho AutoCAD.
Ssg mới bắt đầu tiếp cận SolidWorks nhưng thấy nó rất hay, hoàn toàn đáp ứng được nhu cầu hiện tại của mình (và các trường hợp tương tự như của bạn). Bạn có thể tham khảo ở đây, và nếu có thể thì tham gia cùng anh em cho có khí thế:

http://www.cadviet.c...amp;#entry23891
  • 0

#27 tuannguyen314169

tuannguyen314169

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 297 Bài viết
Điểm đánh giá: 57 (tàm tạm)

Đã gửi 15 July 2008 - 09:44 AM

Bạn thông cảm cho mình hỏi lại:
1. Trong autocard mình tìm không có pline mà chỉ có line và spline ?.
2. Lisp convert spline -> pline hay là Lips convert spline -> pline là phần mềm dùng để bạn viết chuyển convert spline -> pline ?
  • 0

#28 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 15 July 2008 - 10:10 AM

Bạn thông cảm cho mình hỏi lại:
1. Trong autocard mình tìm không có pline mà chỉ có line và spline ?.
2. Lisp convert spline -> pline hay là Lips convert spline -> pline là phần mềm dùng để bạn viết chuyển convert spline -> pline ?

1- Pline là cách nói gọn (rất thông dụng) của Polyline. Bạn nhập lệnh "pline" vẽ thử, vào properties sẽ thấy.
2- Không hiểu ý bạn! Mã lisp post ở trên là một chương trình ứng dụng hoàn chỉnh. Bạn chỉ việc load và sử dụng, chi tiết mình đã viết rất kỹ ở các dòng đầu. Nếu bạn chưa biết cách sử dụng lisp (nói chung) thì vào topic "Hướng dẫn sử dụng mã lisp".
  • 1

#29 tuannguyen314169

tuannguyen314169

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 297 Bài viết
Điểm đánh giá: 57 (tàm tạm)

Đã gửi 16 July 2008 - 02:36 PM

1- Pline là cách nói gọn (rất thông dụng) của Polyline. Bạn nhập lệnh "pline" vẽ thử, vào properties sẽ thấy.
2- Không hiểu ý bạn! Mã lisp post ở trên là một chương trình ứng dụng hoàn chỉnh. Bạn chỉ việc load và sử dụng, chi tiết mình đã viết rất kỹ ở các dòng đầu. Nếu bạn chưa biết cách sử dụng lisp (nói chung) thì vào topic "Hướng dẫn sử dụng mã lisp".

Mình đã hiểu ý bạn do mình chưa biết cách sử dụng lisp. Mình muốn hỏi bạn ssg là sau khi chuyển đổ bằng lisp để vật thể ban đầu chuyển thành solid bằng các bước trong đó có sử dụng lisp thì sai số về thể tích là bao nhiêu % ?. Trong khi đó mình sử dụng lệnh loft thì sai số về thể tích đối với ssg là 3,42%.
  • 0

#30 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 21 July 2008 - 08:22 AM

Mình đã hiểu ý bạn do mình chưa biết cách sử dụng lisp. Mình muốn hỏi bạn ssg là sau khi chuyển đổ bằng lisp để vật thể ban đầu chuyển thành solid bằng các bước trong đó có sử dụng lisp thì sai số về thể tích là bao nhiêu % ?. Trong khi đó mình sử dụng lệnh loft thì sai số về thể tích đối với ssg là 3,42%.

Không thể nói trước là sai số bao nhiêu %, vì nó phụ thuộc vào từng trường hợp cụ thể.
Khi bạn dùng lisp trên, khi chương trình hỏi "Length of 1 segment...", bạn nhập số càng nhỏ thì kết quả càng chính xác. Tuy nhiên, khi đó số segment trong pline nhiều hơn -> kích thước file lớn hơn.
Bạn có thể tự kiểm tra độ chính xác về diện tích khi convert spline->polyline. Ví dụ:
- Vẽ 1 spline kín
- Dùng lệnh area sẽ thấy diện tích của vùng mà nó bao quanh
- Convert sang pline và làm tương tự
- So sánh 2 diện tích trên sẽ biết sai số
Sai số tương đối của diện tích cũng có thể xem là sai số tương đối của thê tích vì khi bạn dùng loft, sai số dọc theo path hoặc guide rất nhỏ (do AutoCAD thực hiện), trong tính toán kỹ thuật là không đáng kể (có thể không quá 1 phần triệu), xem như chính xác hoàn toàn.
Nói chung, bạn chọn "length of 1 segment" hợp lý, bạn có thể đạt độ chính xác không dưới 1/10.000 một cách rất bình thường.
  • 1