Đến nội dung


Hình ảnh
- - - - -

trợ giúp về autocad.net help.help


  • Please log in to reply
3 replies to this topic

#1 thich_minh_hue

thich_minh_hue

    Chưa sử dụng CAD

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

Đã gửi 08 January 2015 - 03:38 PM

138932_2_1.jpgthưa các bác.e có 1 đoạn code của autocad.net e làm trên visual basic 8.......e muốn tạo hatch vào trong ô vuông mà code e tạo ra. có bác nào giúp e với ạ.e chân thành cảm ơn 

Public Class Class1
    <CommandMethod("vehinhvuong")> Public Sub Ve_hinh_vuong()
        add_line(0, 0, 0, 10)
        add_line(0, 10, 10, 10)
        add_line(10, 10, 10, 0)
        add_line(10, 0, 0, 0)
 
    End Sub
    Sub add_line(ByVal x1, ByVal y1, ByVal x2, ByVal y2)
 
        '' 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, DatabaseServices.OpenMode.ForRead)
 
            '' Open the Block table record Model space for write
            Dim acBlkTblRec As BlockTableRecord
            acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), _
                                            DatabaseServices.OpenMode.ForWrite)
 
            '' Create a line that starts at 5,5 and ends at 12,3
            Dim acLine As Line = New Line(New Point3d(x1, y1, 0), _
                                  New Point3d(x2, y2, 0))
 
            acLine.SetDatabaseDefaults()
 
            '' Add the new object to the block table record and the transaction
            acBlkTblRec.AppendEntity(acLine)
            acTrans.AddNewlyCreatedDBObject(acLine, True)
 
            '' Save the new object to the database
            acTrans.Commit()
 
        End Using
    End Sub
 
 
Public Class Class1
    <CommandMethod("vehinhvuong")> Public Sub Ve_hinh_vuong()
        add_line(0, 0, 0, 10)
        add_line(0, 10, 10, 10)
        add_line(10, 10, 10, 0)
        add_line(10, 0, 0, 0)
 
    End Sub
    Sub add_line(ByVal x1, ByVal y1, ByVal x2, ByVal y2)
 
        '' 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, DatabaseServices.OpenMode.ForRead)
 
            '' Open the Block table record Model space for write
            Dim acBlkTblRec As BlockTableRecord
            acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), _
                                            DatabaseServices.OpenMode.ForWrite)
 
            '' Create a line that starts at 5,5 and ends at 12,3
            Dim acLine As Line = New Line(New Point3d(x1, y1, 0), _
                                  New Point3d(x2, y2, 0))
 
            acLine.SetDatabaseDefaults()
 
            '' Add the new object to the block table record and the transaction
            acBlkTblRec.AppendEntity(acLine)
            acTrans.AddNewlyCreatedDBObject(acLine, True)
 
            '' Save the new object to the database
            acTrans.Commit()
 
        End Using
    End Sub
 
End Class

  • 0

#2 thich_minh_hue

thich_minh_hue

    Chưa sử dụng CAD

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

Đã gửi 08 January 2015 - 03:40 PM

e gửi cả ảnh đây ạ


  • 0

#3 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 08 January 2015 - 04:12 PM

e gửi cả ảnh đây ạ

Gửi ảnh lên để .. đánh đố thiên hạ à?

Đùng bắt mọi người phải gõ lại code chứ!

 

Tham khảo code C#: Vẽ RecTang (hình chữ nhật) qua 2 điểm sau đó tạo Hatch cho Rectang đó.

       [CommandMethod("DrawPL")]
        public void DrawPL()
        {
            Document doc = AcadApp.DocumentManager.MdiActiveDocument;
            Database db = doc.Database;
            Editor ed = doc.Editor;

            PromptPointOptions ppo = new PromptPointOptions("\nChọn điểm đầu: ");
            PromptPointResult ppr = ed.GetPoint(ppo);
            if (ppr.Status != PromptStatus.OK) return;
            Point3d pt1 = ppr.Value;

            ppr = ed.GetCorner("\nChọn điểm đối diện: ", pt1);
            if (ppr.Status != PromptStatus.OK) return;
            Point3d pt2 = ppr.Value;

            using (Transaction tr = db.TransactionManager.StartTransaction())
            {
                BlockTable blk = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
                BlockTableRecord btr = tr.GetObject(blk[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
                // add Polyline
                Polyline pl = new Polyline();
                btr.AppendEntity(pl);
                tr.AddNewlyCreatedDBObject(pl, true);
                pl.AddVertexAt(0, new Point2d(pt1.X, pt1.Y), 0, 0, 0);
                pl.AddVertexAt(1, new Point2d(pt2.X, pt1.Y), 0, 0, 0);
                pl.AddVertexAt(2, new Point2d(pt2.X, pt2.Y), 0, 0, 0);
                pl.AddVertexAt(3, new Point2d(pt1.X, pt2.Y), 0, 0, 0);
                pl.Closed = true;                
                // add Hatch
                Hatch hat = new Hatch();
                btr.AppendEntity(hat);
                tr.AddNewlyCreatedDBObject(hat, true);
                hat.SetHatchPattern(HatchPatternType.PreDefined, "ANSI31");
                hat.Associative = true;
                hat.AppendLoop(HatchLoopTypes.Outermost, new ObjectIdCollection() { pl.ObjectId });
                hat.EvaluateHatch(true);                

                tr.Commit();
            }
        }

Bài viết đã được chỉnh sửa nội dung bởi gia_bach: 09 January 2015 - 07:47 AM

  • 1

#4 thich_minh_hue

thich_minh_hue

    Chưa sử dụng CAD

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

Đã gửi 09 January 2015 - 08:45 AM

đây code của e đây ạ.em muốn thêm hatch vào hình vuông của e 138932_2_2.jpg


  • 0