Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
ptlong04x1

Hỏi về code VBA gióng chân Dim

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

ptlong04x1    8

Mình thấy trên DĐ có rất nhiều lisp dùng để gióng chân Dim, mình thắc mắc về thuật toán này nếu dùng VBA (đọc lisp thấy không hiểu??? :blink:). Các bạn có thể cho mình một ví dụ gióng chân Dim bằng code VBA không? Xin cảm ơn!

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
phantuhuong    204

Một ví dụ bằng VBA để tạo Dim đây:

 

Sub Example_AddDimAligned()
   ' This example creates an aligned dimension in model space.

   Dim dimObj As AcadDimAligned
   Dim point1(0 To 2) As Double
   Dim point2(0 To 2) As Double
   Dim location(0 To 2) As Double

   ' Define the dimension
   point1(0) = 5#: point1(1) = 5#: point1(2) = 0#
   point2(0) = 10#: point2(1) = 5#: point2(2) = 0#
   location(0) = 5#: location(1) = 7#: location(2) = 0#

   ' Create an aligned dimension object in model space
   Set dimObj = ThisDrawing.ModelSpace.AddDimAligned(point1, point2, location)
   ZoomAll
End Sub

  • Vote tăng 1

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
ptlong04x1    8

Một ví dụ bằng VBA để tạo Dim đây:

 

Sub Example_AddDimAligned()
   ' This example creates an aligned dimension in model space.

   Dim dimObj As AcadDimAligned
   Dim point1(0 To 2) As Double
   Dim point2(0 To 2) As Double
   Dim location(0 To 2) As Double

   ' Define the dimension
   point1(0) = 5#: point1(1) = 5#: point1(2) = 0#
   point2(0) = 10#: point2(1) = 5#: point2(2) = 0#
   location(0) = 5#: location(1) = 7#: location(2) = 0#

   ' Create an aligned dimension object in model space
   Set dimObj = ThisDrawing.ModelSpace.AddDimAligned(point1, point2, location)
   ZoomAll
End Sub

 

Dạ ý em không phải là vậy. Em muốn tìm hiểu thuật toán cắt chân dim (cut dim) bằng VBA. Đã có rất nhiều lisp trên diễn đàn thực hiện việc này nhưng e muốn thực hiện nó bằng VBA vì không biết chút gì về lisp.

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
phamngoctukts    708

Dạ ý em không phải là vậy. Em muốn tìm hiểu thuật toán cắt chân dim (cut dim) bằng VBA. Đã có rất nhiều lisp trên diễn đàn thực hiện việc này nhưng e muốn thực hiện nó bằng VBA vì không biết chút gì về lisp.

Với thằng Dimrotated không thể nào lấy được toạ độ chân dim nên hiện tại chưa nghĩ được ra cách nào dóng chân Dim bằng code vba.

Với thằng dimaligned có thể lấy được toạ độ chân dim nhưng code rắc rói vì phải lấy hướng của dim với lại loại này ít dùng.

  • Vote tăng 2

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
ptlong04x1    8

Với thằng Dimrotated không thể nào lấy được toạ độ chân dim nên hiện tại chưa nghĩ được ra cách nào dóng chân Dim bằng code vba.

Với thằng dimaligned có thể lấy được toạ độ chân dim nhưng code rắc rói vì phải lấy hướng của dim với lại loại này ít dùng.

 

Mình đã làm thử và cũng gặp các vướng mắc như bạn nói. Không hiểu nguyên lý làm việc trong lisp cắt chân Dim thì sao nhỉ? Bạn nào giải thích giúp mình với!

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
ketxu    2.649

Vì lisp cung cấp khả năng đọc entity record của Dimension, trong đó có các mã dxf 10,11 để biết tọa độ 2 đầu Line Dim, mã 13,14 để biết tọa độ 2 đỉnh ExtentLine, từ đó có thể chỉnh sửa lại Dim.

Ví dụ :

Từ dxf 10,11 => vectơ hướng Dim (v1) + vectơ ExtLine (v2)

Từ điểm pick => Xác định đường song song với v1, cắt 2 đường ExtLine tại 2 điểm giao

=> Sửa mã dxf 13,14 thành 2 điểm giao vừa tìm được

  • Vote tăng 1

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
quoctuan903    4

nhân tiện nói chuyện về dim, các anh cho em hỏi có lisp nào gióng đường kích thước không, không phải chân dim đâu nhé, đại loại như có 1 đống dim có đường gióng nằm song song mà mình lại muốn nó về thẳng hàng hết (như vẽ dimcontinous ấy) tại vị trí theo ý muốn, hoặc trước nó đã thẳng hàng rồi mà mình lại không muốn nó ở chỗ ấy mà muốn nó ra chỗ khác cơ, có lisp nào như vậy không các anh?

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


×