Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
6 replies to this topic

#1 nvson

nvson

    biết vẽ ellipse

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

Đã gửi 19 December 2011 - 08:38 PM

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


  • 0

#2 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1435 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 20 December 2011 - 09:20 AM

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
  • 1

#3 daominh80

daominh80

    biết pan

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

Đã gửi 02 January 2012 - 10:49 PM

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
  • 0

#4 hoaituoi.87

hoaituoi.87

    biết lệnh rotate

  • Members
  • PipPipPip
  • 135 Bài viết
Điểm đánh giá: 174 (tàm tạm)

Đã gửi 03 January 2012 - 08:20 AM

ngôn ngữ nửa ta,nửa tây đọc mà chéo hèo :blink:
  • 4
Khi ta thành công cuộc đời sẽ tha thứ cho ta tất cả!
Hình đã gửi

Skype : hoaituoi.87
Email : hoaituoi.87@gmail.com
Yahoo : pa_alucad

#5 daominh80

daominh80

    biết pan

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

Đã gửi 04 January 2012 - 11:15 PM

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
  • 0

#6 anhcos

anhcos

    biết lệnh hatchedit

  • Advance Member
  • PipPipPipPip
  • 260 Bài viết
Điểm đánh giá: 170 (tàm tạm)

Đã gửi 05 January 2012 - 10:56 AM

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.
  • 0
Clear sky!

MF Rock collection.

#7 daominh80

daominh80

    biết pan

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

Đã gửi 06 January 2012 - 12:17 AM

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é!!!!!!!!!!!
  • 0