Chuyển đến nội dung
Diễn đàn CADViet

huyhoangute

Thành viên
  • Số lượng nội dung

    15
  • Đã tham gia

  • Lần ghé thăm cuối

Bài đăng được đăng bởi huyhoangute


  1. Srr vì viết vội^^.Mình viết trong trường hợp trong fle CAD đó chưa nhiều Block.

    @chủ 2pic: để insert 1 block chứa trong 1 file,đầu tiên bạn phải khai báo đường dẫn tới file đó.

    Khi bắt đầu chạy code thì sẽ có hàm khởi tạo insert toàn bộ file chứa block.

    Sau đó,muốn insert block nào thì dùng tên block đó

     

    Sub Khoi_Tao()
    'On Error GoTo out:
    Dim diemchen(0 To 2) As Double
    Dim BlockFile
    ' Insert file chua block
    BlockFile = "C:\fileblock.dwg" ' Duong dan file dwg
    Dim blockRefObj As AcadBlockReference
    Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(diemchen BlockFile, 1#, 1#, 1#, 0)
    blockRefObj.Delete
    out:
    End Sub
    
    Private Sub chen_block()
    Khoi_tao
    Dim tpoint
    Dim blockRefObj As AcadBlockReference
     tpoint = ThisDrawing.Utility.GetPoint(, "Diem dat block: ")
    'insert block trong file chua block
     Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(tpoint, "ten_Block", 1#, 1#, 1#, 0) 'ten 1 block trong file dwg  
    End Sub

    Code trên chạy ok rùi nhưng Bác có thể giải thích đoạn code trên cho em được không? em chưa hiểu lắm.

    Đầu tiên là gọi bản vẽ chứa block thì ok, đến cái blockRefObj.Delete tại sao lại xóa??? rùi lại out: nữa???

    Nói chung là code từ đoạn blockRefObj.Delete về sau em ko hiểu, bác giải thích giúp em nhé!


  2. Private Sub chen_block()
    Dim tpoint
    Dim blockRefObj As AcadBlockReference
    tpoint = ThisDrawing.Utility.GetPoint(, "Diem dat block: ")
    	Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(tpoint, "ten Block", 1#, 1#, 1#, 0)	
    End Sub

    Bạn thử đoạn này xem sao

     

     

    "ten Block" của bạn thực ra đó là tên file chứa các block chứ không phải là tên Block chứa trong file

    • Vote tăng 1

  3. Mình có 2 bản vẽ: 1 bản là bản vẽ không có gì (bản vẽ mới) và 1 bản vẽ có chứa 3 block có tên là 1,2 và 3

    Cho mình hỏi là làm thế nào để chèn vào bản vẽ mới block 1 hoặc 2 hoặc 3 (tức là không đồng thời chèn cả 3 block vào).

    Dùng lệnh

    Command: dc

    Xuất hiện

    Bảng biểu

    Chọn bảng vẽ chứa blok

    Chọn block cần lấy

    dùng chột lôi vào là bảng vẽ mới là được

    vuhaiok@yahoo.com.vn

     

    :cheers: :leluoi:

    Mấy anh "đọc kĩ hướng dẫn sử dụng trước khi dùng hộ em cái", đã bảo là VBA mà. Đến bó tay!


  4. Sử dụng như sau:

    Copy Block có tên abc từ bản vẽ hiện hành qua bản vẽ khác

     

    Dim ban_ve_khac as AcadDocument

    Set biến ban_ve_khac này ở đây

     

    Dim object_to_copies(0) as AcadEntity

    set object_to_copies(0) = ThisDrawing.Blocks.Item("abc")

     

    ThisDrawing.CopyObject object_to_copies, ban_ve_khac

    Mình muốn copy block từ một bản vẽ đã có (coi như là một thư viện ) vào bản vẽ hiện hành cơ. help me, thanks!


  5. Em có 1 file thế này http://www.cadviet.com/upfiles/3/vidu_3.dwg

    Xin hỏi trong VBA làm thế nào để có thể đếm được số đối tượng có hình tròn có dấu cộng ở giữa, hình tròn có số dấu gạch chéo ở giữa, và đường tròn không có gì?

    Em chỉ có thể đếm trên bản vẽ có bao nhiêu đường tròn (cà đường tròn có dấu cộng và hình tròn có dấu gạch chéo) theo code này:

     

    Private Sub CommandButton1_Click()

    UserForm1.Hide

     

    Dim asset As AcadSelectionSet

    Dim i As Integer

    'Bo qua loi neu asset khong ton tai

    On Error Resume Next

    ActiveDocument.SelectionSets.Item("asset").Delete

    'Tao asset

    Set asset = ActiveDocument.SelectionSets.Add("asset")

    'Chon toan bo doi tuong trong ban ve vao asset

    Dim gpCode(0) As Integer

    Dim dataValue(0) As Variant

    gpCode(0) = 0

    dataValue(0) = "Circle"

    Dim groupCode As Variant, dataCode As Variant

    groupCode = gpCode

    dataCode = dataValue

    asset.SelectOnScreen groupCode, dataCode

    'Duyet cac doi tuong

    Dim Doituong As AcadCircle

    i = 0

    For Each Doituong In asset

    i = i + 1

    Next

    MsgBox " Co " & i & " duong tron."

     

    End Sub


  6. Em đọc trong bài viết: http://www.cadviet.com/cadnews/content/view/93/1/

    có dòng "Hàm này trả về giá trị của mã id của đối tượng obj"

    và thực tế là mỗi đối tượng đều có 1 ID

    vậy cho em hỏi là

    - Chỉ số ID của đối tượng bất kì trên CAD được tính thế nào?

    - Em thấy chỉ có lệnh ID để xem ID của một điểm, vậy lệnh ID của đối tượng là gì?


  7. Khi dùng lệnh color trong CAD xuất hiện một Form Color Index để chọn màu

     

    Ai có thể giúp em code bài tập này với:

    - Tạo 1 Form có chứa 1 button

    - Khi click 1 button -> Form chứa button ẩn đi-> lựa chọn 1 đối tượng trên bản vẽ-> lựa chọn xong nhấn Enter-> bảng Index Color hiện ra để chúng ta chọn màu -> nhấn OK trên Index Color thì đối tượng được chọn sẽ đổi thành màu được chọn.

     

    Cảm ơn mọi người đã giúp đỡ!

×