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

garupro

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

    34
  • Đã tham gia

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

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


  1. Bạn nào tạo được Hatch trong Net không mình làm hoài đến phần thêm đối tượng vào toàn báo Invalid object array , Nếu dùng Sencommand thì được nhưng khi cho vào vòng lặp thì Cad đơ luông (Chắc Net gửi nhiều dữ liệu quá)

    Dim diem(14) As Double
           	Dim pline As Object
           	diem(0) = x
           	diem(1) = y + dao / tile
           	diem(2) = 0
           	diem(3) = x + khoangcachcoc
           	diem(4) = y + dao / tile
           	diem(5) = 0
           	diem(6) = x + khoangcachcoc
           	diem(7) = y - dap / tile
           	diem(8) = 0
           	diem(9) = x
           	diem(10) = y - dap / tile
           	diem(11) = 0
           	diem(12) = x
           	diem(13) = y + dao / tile
           	diem(14) = 0
           	pline = Dwg.ModelSpace.AddPolyline(diem)
    Dim hatchobj As Object
           	Dim ptname As String
            	Dim pttype As Long
            	Dim bass As Boolean
           	Dim lopp(0)
             	ptname = "ANSI31"
            	pttype = 0
            	bass = True
           	lopp(0) = pline
           	hatchobj = Dwg.ModelSpace.AddHatch(pttype, ptname, bass)
           	hatchobj.AppendOuterLoop(lopp) ' Báo lỗi ở đây nè
    


  2. Bạn làm theo mẫu của bạn ndtnv nhưng sửa lại 1 tý : Khai báo ssline và thêm 2 dấu , vào đoạn này ssline.Select acSelectionSetAll, FilterType, FilterData là oke (Vì ko có dấu , nên nó xóa tất cả các đối tượng)

     

    Dim ssline As AcadSelectionSet
     Dim i As Long
     Dim FilterType(0) As Integer
     Dim FilterData(0) As Variant
     Set ssline = ThisDrawing.SelectionSets.Add("ssLine")
     FilterType(0) = 0
     FilterData(0) = "Line"
     ssline.Select acSelectionSetAll, , , FilterType, FilterData
     For i = ssline.Count - 1 To 0 Step -1
    ssline(i).Delete
     Next
     ssline.Delete
     Application.Update

     

     

     

    Mình đã test rồi


  3. Cái này mình cũng ko giám chắc .Bạn thử theo hướng này xem

    Tạo SelectionSet

    sau đó dùng phương thức Select với mode=5 để chọn toàn bộ đối tượng bản vẽ két hợp với bộ lọc để chọn ra các đối tượng line để xóa

    bạn thử xem

     

    Sub tt()
    Dim sset As AcadSelectionSet
    On Error Resume Next
    Set sset = ThisDrawing.SelectionSets("FF")
    If Err <> 0 Then
    Err.Clear
    Set sset = ThisDrawing.SelectionSets.Add("FF")
    Else
    sset.Clear
    End If
    Dim mode As Double
    mode = 5
    Dim fttype As Double
    Dim fdata As String
    ftype = 0
    fdata = "LINE"
    sset.Select mode, , ftype, fdata
    Dim Enty As AcadEntity
    For Each Enty In sset
      Enty.Delete
     Next Enty
     Application.Update
    
    End Sub

     

    Có gì ko đúng các bác đừng cười em nhe


  4. Vấn đề là thế này :

    Mình có 1 module tên là "Duongthang"

     

    Sub duongthang(a As Double, b As Double, c As Double, d As Double)
    Dim point1(0 To 2) As Double
    Dim point2(0 To 2) As Double
    point1(0) = a
    point1(1) = b
    point1(2) = 0
    point2(0) = c
    point2(1) = d
    point2(2) = 0
    Dim line As AcadLine
    Set line = ThisDrawing.ModelSpace.AddLine(point1, point2)
    End Sub

     

    Sau đó mình gọi cái sub "duongthang" trong module đó ra để vẻ 3 đường thẳng khác nhau

     

    các bạn cho mình hỏi sau khi vẽ xong thì làm sao để có thể chỉnh sửa (Xoay,lấy đối xứng, copy, xóa...) được 1 trong 3 đường thẳng đó ....

     

    Các bạn giúp mình với ...chỗ này bí quá

×