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

NguyenNgocSon

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

    380
  • Đã tham gia

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

  • Ngày trúng

    3

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


  1. Code cho bạn đây nhé!. Dùng thử xem

    Option Explicit
    Public Diemdat As Variant
    Public L As Double
    Sub Hinhvuong(ByVal X As Variant, ByVal a As Double)
    Dim PL(7) As Double
    Dim HV As AcadLWPolyline
    PL(0) = X(0): PL(1) = X(1): PL(2) = PL(0) + a: PL(3) = PL(1)
    PL(4) = PL(2): PL(5) = PL(3) + a: PL(6) = PL(0): PL(7) = PL(1) + a
    Set HV = ThisDrawing.ModelSpace.AddLightWeightPolyline(PL)
    HV.color = 1
    HV.Closed = True
    Dim Doc As AcadLWPolyline
    Dim Ngang As AcadLWPolyline
    Dim Luoi As Variant
    Dim ToadoPL(3) As Double
    'Luoi doc
    ToadoPL(0) = PL(0): ToadoPL(1) = PL(1)
    ToadoPL(2) = PL(6): ToadoPL(3) = PL(7)
    Set Doc = ThisDrawing.ModelSpace.AddLightWeightPolyline(ToadoPL)
    Doc.color = 8
    Luoi = Doc.ArrayRectangular(1, a, 1, 1, 1, 1)
    Doc.Delete
    'Luoi ngang
    ToadoPL(0) = PL(0): ToadoPL(1) = PL(1)
    ToadoPL(2) = PL(2): ToadoPL(3) = PL(3)
    Set Ngang = ThisDrawing.ModelSpace.AddLightWeightPolyline(ToadoPL)
    Ngang.color = 8
    Luoi = Ngang.ArrayRectangular(a, 1, 1, 1, 1, 1)
    Ngang.Delete
    End Sub
    Sub Veluoi()
    Diemdat = ThisDrawing.Utility.GetPoint(, "Pick diem ve")
    On Error Resume Next
    L = ThisDrawing.Utility.GetReal("Nhap chieu dai canh=" & "<" & L & ">")
    If Err <> 0 Then
    Err.Clear
    End If
    Call Hinhvuong(Diemdat, L)
    Application.ZoomExtents
    MsgBox "Da tao xong Luoi o vuong", vbInformation, "Nguyen Ngoc Son"
    End Sub
    


  2. Mục đích của em là đưa tiếng Việt vào Menu thôi. Em thấy viết bằng VBA thì dễ hơn là LISP . Bác cho em xin email để trao đổi 1 chút kinh nghiệm được không ạ?

    Đưa tiếng việt vào Menu bằng VBA thì phải dùng hàm API chuyển mã hơi dài dòng trong khi đó bằng CUI bạn tạo menu trực tiếp luôn nhé.

    Email: nguyenngocson@live.com

    • Vote tăng 1

  3. Nếu viết VBA như thế này :

    \\Dim openMacro As String

    openMacro = "-vbarun SubMenu1 "

    Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, "Sub Menu 1", openMacro)

    \\

    tức là gọi marco SubMenu1 và gán vào menu Sub Menu 1

     

    Còn ý em là em muốn gán lisp bh vào Sub Menu 1 trong VBA (chứ không phải là viết lisp gọi VBA) . Khi kích vào Sub Menu 1 sẽ tự động gọi lisp bh đã được load từ trước.

     

    Thanks ạ!

    Bạn thử như sau xem

    Sub Menu1()
    ThisDrawing.SendCommand "bh "
    End Sub
    

    Thực thi dòng lệnh từ bàn phím. Sau đó bạn gọi như bình thường

    Mình đã tạo Menu với VBA nhưng nhận thấy tạo Menu bằng CUI hay hơn nhiều mà mình gọi thủ tục thông qua "Lisp gọi VBA" còn nếu gọi Menu trong VBA bắt buộc các sub phải nằm cùng Module với Sub tạo menu đấy nhé !. Bạn check thử xem. Thân !

    • Vote tăng 1

  4. Một số bạn

     

     

    http://cadonline.duy...lication&lid=38

     

    Các bạn có nhu cầu sử dụng tiện ích này cho công việc thì download lại nhé.

    Phiên bản này có Fix một số lỗi, và mình cũng có bổ sung tiện ích in tự động trong Link.

    Cái web của bạn có vấn đề. Khi download nó ra cái logo :D


  5. mình đang làm đồ án tốt nghiệp đề tài là tự động hóa triển khai bản vẽ mố cầu, thầy giáo bắt tìm các chương trình có liên quan đến phân triển khai bản vẽ mố cầu, hiện tại mình chỉ tìm hiệu được có 1 phần mềm viết về vấn đề này là MO_2k5 , thầy bắt phải tím khoảng 3 phần mềm cơ. Bạn nào biết phần mềm nào liên quan đến phần này thì giới thiệu cho mình với, mình tìm trên google rồi mà không thấy có .Cám ơn các bạn trước nhé :)

    Theo như mình biết thì hiện tại các PM trong nước về vấn đề này ko có nhiều ngoài cái MO-2K5 như bạn nói vì hầu hết các đơn vị ko theo một form chuẩn nào nên việc auto là khó khăn nên ít có cty nào viết chương trình về lĩnh vực này.Nếu bạn cần trao đổi thì email cho mình: nguyenngocson@live.com

×