Đến nội dung


Hình ảnh
- - - - -

tao luoi 3D trong atocad bang VAB


  • Please log in to reply
10 replies to this topic

#1 dienhoa

dienhoa

    biết pan

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

Đã gửi 31 January 2013 - 07:59 PM

em dang can gap cac bac a.ai cao thu thi nho chi giup em voi.
ví dụ như em muốn tạo một lưới trong không gian 3 chiều.cùng nằm tên một mặt phẳng cũng được.túc là lưới này nằm trong hình vuông.khi ta nhập cạnh của hình vuông (thay đổi cạnh hình vuông) thì lưới sẽ vẽ theo hết toàn bộ hình vuông đó,các bác chỉ hướng đi giúp em.em có thể dựa vào đó dể làm.có ví dụ cụ thể thì càng tốt.cảm ơn các bác nhiều.
  • 0

#2 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 31 January 2013 - 09:24 PM

Chào bạn.Nếu là VBA thì bạn cũng nên có 1 file cad minh họa chứ ? Có thể tôi giúp được :)
  • 1

#3 dienhoa

dienhoa

    biết pan

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

Đã gửi 01 February 2013 - 08:50 AM

Chào bạn.Nếu là VBA thì bạn cũng nên có 1 file cad minh họa chứ ? Có thể tôi giúp được :)


em đã vẽ được hình vuông rôi.nhập cạnh luôn.bây giờ nhờ các anh có thể giúp em tiếp được không.nếu em dùng cách nhập tọa độ từng điểm để VBA tự vẽ ra thì không ổn vì còn phụ thuộc vào cạnh của hình vuông nữa.em dịnh sử dụng vòng lặp "do while....loop".nhưng không được.nhờ các bác chỉ giúp em.dưới đây là file em đã làm nhờ bác chỉ giúp.http://www.cadviet.c..._hinh_vuong.txt
con day la luoi hinh vuong:mỗi cạnh co kích thước a= 1
http://www.cadviet.c...3/116314_hv.dwg
  • 0

#4 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 01 February 2013 - 09:05 AM

Chào bạn. Cái hình vuông lớn của bạn là bất kỳ? Các hình vuông nhỏ là 1x1, chia đến hết cạnh HV ah?
  • 1

#5 dienhoa

dienhoa

    biết pan

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

Đã gửi 01 February 2013 - 09:37 AM

Chào bạn. Cái hình vuông lớn của bạn là bất kỳ? Các hình vuông nhỏ là 1x1, chia đến hết cạnh HV ah?

da.đúng a.tức là em muốn tạo lưới hết cả hình vuông lớn bằng các hình vuông nhỏ có kích thước 1x1.
cái nay để sau này em dùng tính diện tích với thể tích
  • 0

#6 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 01 February 2013 - 09:45 AM

Mình chỉ vẽ trong 2D như cái file bạn gửi? Bạn biết VBA ?
  • 0

#7 dienhoa

dienhoa

    biết pan

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

Đã gửi 01 February 2013 - 09:53 AM

Mình chỉ vẽ trong 2D như cái file bạn gửi? Bạn biết VBA ?

dạ.em đang làm đề tài tốt nghiệp về nút giao thông.ứng dụng VBA .đó bác à.tài liệu thì em có một ít.nhưng ví dụ về vẽ lưới là chỉ là mình biết tất cả các tọa độ rồi nhập thủ công vào.và tự vẽ thôi.còn bác vẽ được 2D là tốt rồi.vì em chỉ cẩn thay thổi giá tri cao độ z theo ý của mình là xong bác a.nhờ bác chỉ giúp em.
  • 0

#8 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 01 February 2013 - 09:56 AM

Code cho bạn đây nhé!. Dùng thử xem

Option Explicit
Public Diemdat As Variant
Public L As Double
Sub Hinhvuong(ByVal X As Variant, ByVal a As Double)
Dim PL(7) As Double
Dim HV As AcadLWPolyline
PL(0) = X(0): PL(1) = X(1): PL(2) = PL(0) + a: PL(3) = PL(1)
PL(4) = PL(2): PL(5) = PL(3) + a: PL(6) = PL(0): PL(7) = PL(1) + a
Set HV = ThisDrawing.ModelSpace.AddLightWeightPolyline(PL)
HV.color = 1
HV.Closed = True
Dim Doc As AcadLWPolyline
Dim Ngang As AcadLWPolyline
Dim Luoi As Variant
Dim ToadoPL(3) As Double
'Luoi doc
ToadoPL(0) = PL(0): ToadoPL(1) = PL(1)
ToadoPL(2) = PL(6): ToadoPL(3) = PL(7)
Set Doc = ThisDrawing.ModelSpace.AddLightWeightPolyline(ToadoPL)
Doc.color = 8
Luoi = Doc.ArrayRectangular(1, a, 1, 1, 1, 1)
Doc.Delete
'Luoi ngang
ToadoPL(0) = PL(0): ToadoPL(1) = PL(1)
ToadoPL(2) = PL(2): ToadoPL(3) = PL(3)
Set Ngang = ThisDrawing.ModelSpace.AddLightWeightPolyline(ToadoPL)
Ngang.color = 8
Luoi = Ngang.ArrayRectangular(a, 1, 1, 1, 1, 1)
Ngang.Delete
End Sub
Sub Veluoi()
Diemdat = ThisDrawing.Utility.GetPoint(, "Pick diem ve")
On Error Resume Next
L = ThisDrawing.Utility.GetReal("Nhap chieu dai canh=" & "<" & L & ">")
If Err <> 0 Then
Err.Clear
End If
Call Hinhvuong(Diemdat, L)
Application.ZoomExtents
MsgBox "Da tao xong Luoi o vuong", vbInformation, "Nguyen Ngoc Son"
End Sub

  • 0

#9 dienhoa

dienhoa

    biết pan

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

Đã gửi 01 February 2013 - 10:26 AM

cám ơn bác đã chỉ giúp.có lẽ khi nãy em hơi vội vàng khi vẽ file cad cho bác.nhưng ý của em là các ô vuông này tạo thành một khối. chứ không phải là những ô vuông riêng lẽ.co file dính kèm bác a.nhờ bác chỉ giúp.http://www.cadviet.c...116314_luoi.dwg
http://www.cadviet.c...inh_vuong_1.txt
  • 0

#10 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 01 February 2013 - 10:55 AM

Chưa rõ ý bạn lắm. Cái bạn tạo là Mesh còn tôi tạo 2D có được ko? Nếu mỗi cái HV 1x1 là 1 PL kín có ok ko ?
  • 0

#11 dienhoa

dienhoa

    biết pan

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

Đã gửi 03 February 2013 - 11:14 AM

Chưa rõ ý bạn lắm. Cái bạn tạo là Mesh còn tôi tạo 2D có được ko? Nếu mỗi cái HV 1x1 là 1 PL kín có ok ko ?


da.mâys bữa giờ máy em bị cháy ổ cứng mới bảo hành vế,giờ mới trả lời câu hỏi của bác được.nếu bác tạo hình vuông bằng đường pl kín thì các hình vuông này có độc lập với nhau hay không.nếu độc lập với nhau thi khác với ý của em là tạo thành mottj khối duy nhất.như cái lưới bình thường ngoài thực tế vậy thôi. :blush: .còn bác biết rõ về Mesh thì chỉ cho em biết một chút cũng được.em sẽ tự mày mò.do em cũng mới bước vào tìm hiểu nên còn nhiều thứ phải học hỏi nhiều bác à.em có thử dùng vòng lặp nhưng vẽ nó không chính xác được.bác góp ý liến cho em với.đang dùng Mesh.có lẽ câu lệnh sai.mà em không biết sai ở đâu.bác xem thử.http://www.cadviet.c...3/116314_ve.txt
  • 0