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

Hỏi về cách vẽ Spline trong Autocad từ Exel

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

Chào các bác

Em đã đọc và tìm hiểu một số chương trình VBA từ Excel and Autocad, tuy nhiên em vẫn chưa giải quyết được bài toán sau

Em có file excel (tệp đính kèm), bao gồm 2 cột x,y chứa các toạ độ tương ứng

Thông thường, để vẽ đường cong Spline dựa trên toạ độ x,y, em sẽ sử dụng hàm CONCATENATE trong exel rồi copy vào Autocad để vẽ. Đó cũng là một cách hay.

Tuy nhiên, hiện em muốn sử dụng trực tiếp bằng VBA trong Excel, không phải làm thủ công bằng cách viết hàm CONCATENATE. Chỉ cần chọn 2 cột x, y (bôi đen), Click nút lệnh (Marco) sẽ vẽ được đường Spline theo đúng toạ độ đã chọn trong Excel.

Lưu ý: Với mỗi file excel khác nhau sẽ có vị trí Cell của toạ độ x,y khác nhau ( Ở file này, toạ độ x có thể là A2, nhưng tệp khác sẽ là B10)

 

Các bác giúp em nhé

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

dinhvantrang Mình gửi file Excel lên nhé

 

http://www.cadviet.com/upfiles/3/31680_example_1.rar

 

Mình cần vẽ 3 đồ thị như trong file excel đó trên nền Autocad

Lưu ý: Vị trí của bảng số liệu trong Excel có thể không bắt đầu từ cell A1 mà có thể từ vị trí cell khác

Cảm ơn bạn rất nhiều

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

Ban dinhvantrang giúp mình đi

http://www.cadviet.com/upfiles/3/37575_example_1.rar

Gửi bạn nhé.

Ở đây việc chọn 2 cột cần theo tứ tự,cột thứ nhất là cột toạ độ X,cột thứ 2 là toạ độ Y.Với lại cái này mình viết để chạy trên nền Cad 2007,nếu chạy trên nền Cad khác thì bạn vô Tools -> Reference -> Chọn Autocad Library 20XX tương ứng nhé.Chúc bạn thành cô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ạn dinhvantrang đã viết code giúp mình

Sau khi test, mình thấy code của bạn rất đúng với ý của mình.

Tuy nhiên, bạn có thể giải thích cụ thể hơn để mình hiểu rõ được không.

Mình không hiểu đoạn code dưới đây:

 

 Dim i, j, k, n As Integer
    i = 1: j = 1: k = 2
    n = Selection.Count
    ReDim PointsArray(1 To (3 * n / 2)) As Double
    For Each TempCell In Selection
        If i <= n / 2 Then
            PointsArray(j) = TempCell
            j = j + 3
        Else
            PointsArray(k) = TempCell
            k = k + 3
        End If
        i = i + 1
    Next

 

Rất mong bạn giải thích giúp mình

Cảm ơn bạn nhiều

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  

×