ngoctanvt
-
Số lượng nội dung
19 -
Đã tham gia
-
Lần ghé thăm cuối
Bài đăng được đăng bởi ngoctanvt
-
-
Điểm ngắn nhất là như thế nào, có nhất thiết phải là hình chiếu vuông góc từ điểm nằm ngoài đến polyline đó. Bạn đưa ra vài hình minh họa xem.
-
Mình không nhầm thì đây là bản vẽ bánh lái, bạn Saycaphe là dân đóng tàu ah?
-
Em làm được rồi. Cảm ơn anh Vạn Vô Thường.
-
Xin chào anh Gia_bach và anh Vạn Vô Thường,
Bản vẽ của em cũng có phần view 3D trong layout, em đã làm theo cách anh chỉ dẫn nhưng lúc in ra giấy thì vẫn ko thể hiện nét đứt được.
Em không biết còn phải set thông số nào nữa không. Mong anh giúp em.
Em xin cảm ơn.
-
Khai triển ống dạng này có thể dùng phần mềm SolidShape hoặc dùng VBA, lisp tính toán & vẽ biên dạng trong Autocad.
-
Hiện tại thì Blog VBA của bạn chỉ còn vài Video là xem free thôi, bạn có thể mở khóa cho các video còn lại không. Thanks.
-
Dùng biến toàn cục : đưa khai báo
Dim h As Double
ra trước
Sub nhap()
...
h = ThisDrawing.Utility.GetReal("Nhap chieu cao text <" & h & " >:")
Em đã sửa theo anh và chương trình chạy OK rồi, không hiểu sao hôm trước lại không được.
Cảm ơn anh.
-
Thank.
Xin lỗi vì em đưa ra yêu cầu thiếu. Em muốn giá trị nhập cuối cùng hiển thị tại dòng nhắc lệnh và "Enter" là sẽ nhập lại giá trị đó, không đánh số vào dòng lệnh nữa.
-
Nếu muốn lưu giá trị của lần nhập sau cùng thì phải sửa code lại như thế nào?
ví dụ: Lần cuối cùng nhập h=5. Lần dùng sau VBA sẽ lưu lại giá trị h=5 và hiển thị tại dòng nhắc lệnh.
-
Chương trình đã chạy ok rồi. Em cảm ơn anh gia_bach :)
-
-
Em đang làm chương trình tính sự hiệu quả khi cắt thép tấm để thi công.
Trong bản vẽ cắt thép đính kèm theo:
- Các tấm tôn có màu 193
- Các chi tiết cần cắt có màu 20
- Các lỗ khoét của chi tiết có màu 72
Hiệu quả (%) = (tổng diện tích chi tiết cắt - tổng diện tích lỗ khoét) / tổng diện tích tôn * 100
Nhưng khi tính tổng diện tích theo từng màu thì ko được. Em muốn lọc các chi tiết theo màu, ko lọc theo layer.
Sub Nesting_Percentage()On Error Resume Next'-------------------------------Dim SS2 As AcadSelectionSetDim FilterType2(0 To 7) As IntegerDim FilterData2(0 To 7) As VariantDim ToleArea As DoubleDim PartArea As DoubleDim HoleArea As DoubleDim SumToleArea As DoubleDim SumPartArea As DoubleDim SumHoleArea As DoubleDim Percentage As DoubleDim PolylineObj As AcadLWPolyline'-------------------------------------------------Set SS2 = ThisDrawing.SelectionSets("TNT2")If Err <> 0 ThenErr.ClearSet SS2 = ThisDrawing.SelectionSets.Add("TNT2")ElseSS2.ClearEnd IfFilterType2(0) = -4: FilterData2(0) = "<AND"FilterType2(1) = 0: FilterData2(1) = "LWPolyline"FilterType2(2) = -4: FilterData2(2) = "<OR"FilterType2(3) = 62: FilterData2(3) = 193FilterType2(4) = 62: FilterData2(4) = 20FilterType2(5) = 62: FilterData2(5) = 72FilterType2(6) = -4: FilterData2(6) = "OR>"FilterType2(7) = -4: FilterData2(7) = "AND>"SS2.SelectOnScreen FilterType2, FilterData2For Each PolylineObj In SS2If PolylineObj.TrueColor = 20 ThenPartArea = PolylineObj.AreaSumPartArea = SumPartArea + PartAreaElseIf PolylineObj.TrueColor = 72 ThenHoleArea = PolylineObj.AreaSumHoleArea = SumHoleArea + HoleAreaElseIf PolylineObj.TrueColor = 193 ThenToleArea = PolylineObj.AreaSumToleArea = SumToleArea + ToleAreaEnd IfNext PolylineObjSS2.DeletePercentage = Round((SumPartArea - SumHoleArea) / SumToleArea * 100, 2)MsgBox "Used: " & CStr(Percentage) & "%"End Subhttp://www.cadviet.com/upfiles/6/57144_cutting.dwg
-
Em cảm ơn anh Tráng.
-
-
Nhờ các anh kiểm tra giúp em chương trình VBA này.
Chương trình có chức năng: chọn Polyline gốc, sau đó chọn các Polyline khác có cùng diện tích với Polyline gốc, gán layer của Polyline gốc cho các Polyline chọn sau. Vì trong bản vẽ có nhiều nhóm Polyline có diện tích bằng nhau nhưng nằm trên các layer khác nhau & ở các vị trí khác nhau. Dùng lệnh MA thì rất lâu.
Em xin cảm ơn.
-
Cảm ơn anh. Lisp chạy ok đúng ý em rồi. :mellow:
-
Hi các anh.
Em mới tập tành viết lisp được vài tháng. Nhờ ae kiểm tra hộ lisp triển khai giao ống bên dưới tại sao chỉ chạy đúng 1 lần đầu, còn những lần sau đều bị lỗi.
Em cảm ơn.
http://www.cadviet.com/upfiles/5/57144_pipetoflat_2.lsp
-
Uh,.share lên mediafire đi bạn,.Thanks.
Nhờ sửa lỗi code VBA
trong Lập trình khác
Đã đăng · Trả lời báo cáo
Xin chào mọi người. Mình đang làm một ứng dụng vẽ kích thước nhanh trong không gian 3D, và mình đang có một số vướng mắc. Rất mong nhận được sự giúp đỡ từ diễn đàn. Xin cảm ơn.
Các bạn xem bản vẽ ban đầu, bản vẽ kết quả và code VBA mình gửi kèm bên dưới.
Ứng dụng của mình thực hiện theo các bước:
1. Chọn 3 điểm P1,P2,P3 trên màn hình
3 điểm này sẽ phục vụ cho việc tạo UCS mới, lần lượt là gốc tọa độ, điểm trên trục X và điểm trên trục Y
2. Nhập khoảng cách giữa các kích thước, mặc định là 200mm.
3. Chọn đường cong phía trên (đường cong này có thể là Line, Arc, Polyline, 2DPolyline, 3D Polyline, Spline…).
Các bước tính toán để ra kết quả:
1. Tạo UCS mới theo 3 điểm P1, P2, P3 ở trên
2. Tạo 1 3DPolyline vuông góc với đoạn P1P2 có chiều dài bằng P1P2, điểm đầu của polyline nằm trên đoạn P1P2
3. Tìm giao điểm của 3DPolyline vừa tạo và đường cong đã chọn
4. Gán điểm cuối của 3DPolyline là giao điểm vừa tìm được
5. Vẽ kích thước, 2 điểm đầu và cuối của kích thước chính là 2 điểm đầu và cuối của 3DPolyline. Điểm chèn Text của kích thước là trung điểm của 3DPolyline.
6. Tiến hành tương tự đến hết chiều dài đoạn P1P2 với khoảng cách giữa các kích thước mặc định là 200mm.
Hiện tại chương trình của mình đang gặp một số lỗi:
1. Điểm đầu và cuối của kích thước được tạo ra đã đúng yêu cầu nhưng điểm đặt của Text ghi kích thước thì chưa đúng. Mình không hiểu tại sao điểm đặt Text này luôn nằm trên mặt phẳng XY của WCS
2. Chương trình chỉ hoạt động được nếu đường cong phía trên là 1 đường duy nhất. Nếu thay đường cong phía trên bằng 2 hay nhiều đoạn cong nối tiếp nhau thì sẽ xảy ra lỗi.
Ketqua.dwg
Test.dwg
Test.rar