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

Hỏi về cách tô Hatch trong VB.NET AutoCad?

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

Tôi dùng VB.NET 2008 và AutoCad 2011,

Tôi lấy 1 đoạn code trong Help, vậy mà khi chạy vẫn báo lỗi.

Các bạn xem và chỉ giúp tôi cách khắc phục.

 

Imports Autodesk.AutoCAD.Runtime

Imports Autodesk.AutoCAD.ApplicationServices

Imports Autodesk.AutoCAD.DatabaseServices

Imports Autodesk.AutoCAD.Geometry

<CommandMethod("AddHatch")> _

Public Sub AddHatch()

'' Get the current document and database

Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument

Dim acCurDb As Database = acDoc.Database

'' Start a transaction

Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()

'' Open the Block table for read

Dim acBlkTbl As BlockTable

acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead)

'' Open the Block table record Model space for write

Dim acBlkTblRec As BlockTableRecord

acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), _

OpenMode.ForWrite)

'' Create a circle object for the closed boundary to hatch

Dim acCirc As Circle = New Circle()

acCirc.SetDatabaseDefaults()

acCirc.Center = New Point3d(3, 3, 0)

acCirc.Radius = 1

'' Add the new circle object to the block table record and the transactionacBlkTblRec.AppendEntity(acCirc)

acTrans.AddNewlyCreatedDBObject(acCirc, True)

'' Adds the circle to an object id array

Dim acObjIdColl As ObjectIdCollection = New ObjectIdCollection()

acObjIdColl.Add(acCirc.ObjectId)

'' Create the hatch object and append it to the block table record

Dim acHatch As Hatch = New Hatch()

acBlkTblRec.AppendEntity(acHatch)

acTrans.AddNewlyCreatedDBObject(acHatch, True)

'' Set the properties of the hatch object

'' Associative must be set after the hatch object is appended to the

'' block table record and before AppendLoop

acHatch.SetDatabaseDefaults()

acHatch.SetHatchPattern(HatchPatternType.PreDefined, "ANSI31")

acHatch.Associative = True

acHatch.AppendLoop(HatchLoopTypes.Outermost, acObjIdColl)

acHatch.EvaluateHatch(True)

'' Save the new object to the database

acTrans.Commit()

End Using

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ôi dùng VB.NET 2008 và AutoCad 2011,

Tôi lấy 1 đoạn code trong Help, vậy mà khi chạy vẫn báo lỗi.

Các bạn xem và chỉ giúp tôi cách khắc phục.

Bạn là thành viên có thâm niên rồi nhưng vẫn post những nội dung không rõ ràng ?

Cụ thể :

- "khi chạy vẫn báo lỗi." : lỗi gì ?

- báo lỗi khi Build, khi gọi lệnh Netload, hay trong qua trình thao tác lệnh "AddHatch" ...

 

tham khảo : Add Hatch Project

  • 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

Xin các cao thủ chỉ giúp nhé. Trước đây tôi có viết trên VB6 khi tao Hatch thì không có vấn đề gì nhưng khi chuyển sang vb.net thì khi tạo hat

ch gặp lỗi mà không biết cách khắc phục:

 

hatchObj = acaddoc.ModelSpace.AddHatch(0, BHatch, True)

plineObj(0) = acaddoc.ModelSpace.AddPolyline(InsertPoint)

plineObj(0).Closed = True

If plineObj(0).Area <> 0 Then

 

hatchObj.AppendOuterLoop(plineObj) -----> Lỗi phát sinh tại dòng lệnh này, Đối tượng polyline đã đc tạo ok

hatchObj.PatternAngle = 0

hatchObj.PatternScale = 20

hatchObj.Evaluate()

End If

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

ngôn ngữ nửa ta,nửa tây đọc mà chéo hèo :blink:

Tôi viết hơi nông dân có gì thông cảm nhé.

Đoạn Code tôi viế lỗi báo

-2145320837

"Invalid object array"

Bác nào có giúp trương trình này trên VB.net với:

- Tạo Hatch cho một vùng kín bất kỳ.

- Xác định các đối tượng Text trong vùng kín đó để không bôi Hatch vào

 

cám ơ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

Dùng liên kết muộn, hễ chỗ nào dùng mảng các thực thể là nó báo lỗi "Invalid object array", hiện tại tôi chưa tìm ra cách.

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ác Anhcos nhé, tôi có sử dụng 1 số code của bác để tham khảo và bổ sung cho tt của tôi mà chưa kịp cám ơn bác. Năm mới chúc bác luôn khỏe và giúp đỡ được nhiều anh 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

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  

×