QUẢNG CÁO ĐẦU TRANG

Collapse

Thông báo

Collapse
No announcement yet.

ActiveX_AutoCad

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • ActiveX_AutoCad

    ActiveX_AutoCAD là một ứng dụng dạng COM (Component Object Model). Có 3 dạng ứng dụng COM là:
    - In process ( ActiveX DLL)
    (cần phân biệt ứng dụng COM dạng này với thư viện liên kết động DLL)
    - Out of process (ActiveX EXE)
    - Ocx control (ActiveX Control)
    ActiveX_AutoCad chính là dạng Out of process
    Do đó việc lập trình với nó cũng tương tự như lập trình với đối tượng COM thông thường. Chúng ta hoàn toàn có thể kết nối các ứng dụng khác với CAD và ngược lại.
    Vấn đề là chúng ta cần biết cấu trúc của nó, nó được tổ chức ra sao, gồm những lớp cơ sở nào. Những thông tin này các bác có thể tìm hiểu trong Help của AutoCAD (rất đầy đủ và có thêm những ví dụ minh hoạ). Em xin mạn phép được trình bày một số lớp sau:
    (Những thuộc tính cơ bản của đối tượng CAD thuộc về các lớp này)
    - AcadApplication: có thể coi đây là đối tượng thể hiện của ứng dụng
    Một đối tượng CAD được tạo ra chính là tạo ra thể hiện của nó (và tương ứng với một tuyến trình - process)
    + AcadDocument: Trong mỗi ứng dụng CAD được tạo ra, có thể xây dựng nhiều bản vẽ (.dwg), các bản vẽ đều thuộc lớp này.
    Ví dụ : Thuộc tính ActiveDocument của đối tượng CAD
    Tập hợp bản vẽ trong một ứng dụng (thuộc tính Documents) có thể coi là một mảng các đối tượng của lớp AcadDocument
    + Trong một đối tượng bản vẽ còn có nhiều thuộc tính gắn với các lớp khác. ví dụ: AcadModelspace, AcadTextstyle, Acaddimstyle, Acadlayer,...

    Sau đây em trình bày một đoạn mã đơn giản để kết nối một ứng dụng với CAD (tạo một đối tượng CAD)

    ' Tat nhien trong moi truong lap trinh dau tien phai
    ' tham chieu toi thu vien COM cua CAD trong Reference
    Public cad as AutoCad.Application
    '--------------------------------
    set cad = new AutoCad.Application
    cad.visible=True
    dim dwg as AcadDocument
    set dwg = cad.Documents.Add

    Đây là vài thiển ý của em, mong các bác đóng góp.

  • #2
    Ðề: ActiveX_AutoCad

    Bạn thân mến:
    Cái đó bây giờ xưa rồi bạn ạ, trên mạng đầy rẩy ra. Ko ai quan tâm đến viết cái đó làm gì nữa. nếu bnj có rãnh thì học ngôn ngữ mới đi. Nếu cần cái gì, alo qua cho mình ducminh002@yahoo.com. mình share cho.

    Ghi chú


    • #3
      Ðề: ActiveX_AutoCad

      Nguyên văn bởi Ngao
      ' Tat nhien trong moi truong lap trinh dau tien phai
      ' tham chieu toi thu vien COM cua CAD trong Reference
      Public cad as AutoCad.Application
      '--------------------------------
      set cad = new AutoCad.Application
      cad.visible=True
      dim dwg as AcadDocument
      set dwg = cad.Documents.Add

      Nếu bạn viết như trên thì bắt buộc bạn phải tham chiếu Autocad trong môi trường lập trình. Khi phân tán ứng dụng, nếu trên máy người sử dụng cài đặt nhiều Version khác nhau thì ứng dụng sẽ có lúc bị lỗi. Theo tôi bạn nên tham chiếu từ xa (các biến khai báo theo kiểu Object) thì luc đó, ứng dụng sẽ gọi AutoCad với phiên bản mặc định, và như vậy sẽ ko gây lỗi. Sau đây là ví dụ của tôi trong việc gọi AutoCad.

      '=========================================
      Dim Acad as Object,ThisDrawing as Object
      Set Acad = CreateObject("AutoCad.Application")
      Acad.Visible = True
      Set ThisDrawing = Acad.ActiveDocument
      '=========================================

      Chúc vui vẻ
      Công ty Cổ phần kỹ thuật công trình- Thương mại C.N.C.C
      Email : cncc.jsc@gmail.com

      Ghi chú


      • #4
        Ðề: ActiveX_AutoCad

        Nguyên văn bởi Tran Duc Minh
        Bạn thân mến:
        Cái đó bây giờ xưa rồi bạn ạ, trên mạng đầy rẩy ra. Ko ai quan tâm đến viết cái đó làm gì nữa. nếu bnj có rãnh thì học ngôn ngữ mới đi. Nếu cần cái gì, alo qua cho mình ducminh002@yahoo.com. mình share cho.
        To TranDucMinh:
        Sẽ có người quan tâm đấy bạn ạ, ít ra là có tôi

        Theo tôi thì học ngôn ngữ lập trình nào cũng được, miễn là tạo ra được sản phẩm ứng dụng tốt. Nếu bạn nào thích lập trình và mong muốn tạo ra các ứng dụng cụ thể, hãy liên hệ với tôi để cùng làm nhé. Cho dù các bạn có viết bằng ngôn ngữ gì cũng được, việc connect các ngôn ngữ ko quá phức tạp đâu. Chúng ta hãy làm một ứng dụng nào đó cho diễn đàn rồi share lên cho anh em dùng. Đây cũng là điều kiện để chúng ta trau dồi thêm kiến thức xây dựng, nâng cao kỹ năng lập trình, tạo ra một sản phẩm cụ thể. Có ai hưởng ứng không nhỉ??????
        Công ty Cổ phần kỹ thuật công trình- Thương mại C.N.C.C
        Email : cncc.jsc@gmail.com

        Ghi chú


        • #5
          Ðề: ActiveX_AutoCad

          Xin lổi bạn Ngao nghe, hơi lộn đề 1 chút
          Gởi A. Việt Anh
          Em, em hưởng ứng 2 tay, 2 chân. Anh cho em công việc đi. Hiện giờ em đang làm cho 1 công ty lớn của Nhật về ngành xd tại VN. Cho đề tài đi anh, nhưng mà cái nào có ứng dụng thật tế nhé (cái này em sẽ xem xét). Nếu có ứng dụng và thương mại được. Trước mắt mình sẽ free cho anh em để xem ý kiến (tất nhiên chỉ 1 vài Module nhỏ thôi), sau đó nếu tốt mình sẽ adversiting, em đề nghị làm bằng C# nhé anh.
          Last edited by Tran Duc Minh; 20-02-2005, 06:52 PM.

          Ghi chú


          • #6
            Ðề: ActiveX_AutoCad

            Nguyên văn bởi Tran Duc Minh
            Anh Việt Anh
            Em, em hưởng ứng 2 tay, 2 chân. Anh cho em công việc đi. Hiện giờ em đang làm cho 1 công ty lớn của Nhật về ngành xd tại VN. Cho đề tài đi anh, nhưng mà cái nào có ứng dụng thật tế nhé (cái này em sẽ xem xét). Nếu có ứng dụng và thương mại được. Trước mắt mình sẽ free cho anh em để xem ý kiến (tất nhiên chỉ 1 vài Module nhỏ thôi), sau đó nếu tốt mình sẽ adversiting, em đề nghị làm bằng C# nhé anh.
            Vậy là có người hưởng ứng rồi!
            Tôi vừa nhận xét về ứng dụng Thống kê Cốt Thép của PhungHoangAnh, nếu Hoàng Anh nhiệt tình thì phát triển cái đó lên cũng hay. Hiện nay có nhiều ứng dụng viết về thống kê cốt thép nhưng vẫn chưa hoàn chỉnh. Tôi thấy nên làm một cái thống kê cốt thép cho hoàn chỉnh với các chức năng:
            1- Tạo bảng thống kê
            2- Sửa bảng thống kê
            3- Tổng hợp khối lượng
            4- Cho phép người dùng hiệu chỉnh và tạo mới các loại thanh thép.

            Về phần ngôn ngữ, bạn mạnh về ngôn ngữ nào thì cứ viết, rồi tôi sẽ có cách Connect để tạo một ứng dụng hoàn chỉnh.
            Bạn thấy sao?
            Công ty Cổ phần kỹ thuật công trình- Thương mại C.N.C.C
            Email : cncc.jsc@gmail.com

            Ghi chú


            • #7
              Ðề: ActiveX_AutoCad

              Anh việt Anh ơi, mình tạo ra 1 chủ đề mới đi. Bây giờ sẽ đi xây dựng lại từ đầu thồng kê cốt thép nghe anh. Phải làm 1 ngôn ngữ thì cũng được. Anh rành VBA thì em sẽ "theo anh". Nhưng phải để em nói cái này.
              Hiện nay.NET đang lên ngôi, 1-2 năm nữa, bác Bill sẽ đưa luôn Net Framework vào trong WIN thì lúc đó như AutoDesk sẽ nâng cấp từ VBA (giờ chỉ là VB6) sang VBA (giống VB.NET) hiện giờ. Vì anh biết rồi đó, NET framework rất mạnh. MS sẽ dựa vào nó từ 5-10 năm nữa. Mình đang ở thời kì "quá độ" anh ạ. Vì cách viết của VB6 và VB.NET khác nhau rất nhiều nên mai mốt mình đi nâng cấp lại thi chẳng thì viêt luôn cái mới cho rồi.
              Nhưng mà ở VN thì em nghĩ vẩn còn xài các phiên bản CAD2004 đi xuống 2000 vài năm nữa nên em chấp nhận viêt bằng VBA.
              Đề nghị anh mở thêm 1 mục mới đi. Như là "hợp tác viết phần mềm chẳng hạn". Vậy anh em mới có sân chơi mới chứ. Chứ cứ nói qua nói lại kiểu này thì cũng.. lắm.
              Em theo anh 2 tay 2 chân đó
              (Hổm rài em cứ đợi tin của anh, em ko nhớ đã vào mục nào mà nói chuyện với anh, giờ mới tìm ra lại , thông cảm cho em nghe anh, vậy anh nên mở 1 box khác để anh em dể vào nhe)

              VBA mạnh khi mình kết hợp với các CT khác như Access (dùng để làm CSDL chẳng hạn) và Word. Dùng để xuất kết quả tính toán từ CAD sang Word chẳng hạn
              Last edited by Tran Duc Minh; 27-02-2005, 12:42 PM.

              Ghi chú


              • #8
                Ðề: ActiveX_AutoCad

                Nguyên văn bởi Tran Duc Minh View Post
                Anh việt Anh ơi, mình tạo ra 1 chủ đề mới đi. Bây giờ sẽ đi xây dựng lại từ đầu thồng kê cốt thép nghe anh. Phải làm 1 ngôn ngữ thì cũng được. Anh rành VBA thì em sẽ "theo anh". Nhưng phải để em nói cái này.
                Hiện nay.NET đang lên ngôi, 1-2 năm nữa, bác Bill sẽ đưa luôn Net Framework vào trong WIN thì lúc đó như AutoDesk sẽ nâng cấp từ VBA (giờ chỉ là VB6) sang VBA (giống VB.NET) hiện giờ. Vì anh biết rồi đó, NET framework rất mạnh. MS sẽ dựa vào nó từ 5-10 năm nữa. Mình đang ở thời kì "quá độ" anh ạ. Vì cách viết của VB6 và VB.NET khác nhau rất nhiều nên mai mốt mình đi nâng cấp lại thi chẳng thì viêt luôn cái mới cho rồi.
                Nhưng mà ở VN thì em nghĩ vẩn còn xài các phiên bản CAD2004 đi xuống 2000 vài năm nữa nên em chấp nhận viêt bằng VBA.
                Đề nghị anh mở thêm 1 mục mới đi. Như là "hợp tác viết phần mềm chẳng hạn". Vậy anh em mới có sân chơi mới chứ. Chứ cứ nói qua nói lại kiểu này thì cũng.. lắm.
                Em theo anh 2 tay 2 chân đó
                (Hổm rài em cứ đợi tin của anh, em ko nhớ đã vào mục nào mà nói chuyện với anh, giờ mới tìm ra lại , thông cảm cho em nghe anh, vậy anh nên mở 1 box khác để anh em dể vào nhe)

                VBA mạnh khi mình kết hợp với các CT khác như Access (dùng để làm CSDL chẳng hạn) và Word. Dùng để xuất kết quả tính toán từ CAD sang Word chẳng hạn
                Công nhận bác quả là một tay lập trình có dự đoán rất tốt( LT cũng rất tốt)
                Hiện tại Cad từ phiên bản 2005- 2010 đã hỗ trợ .NET
                Viết trên .NET thi thì khỏi phải bàn
                bảo mật của nó thì OK rồi, không như thằng VBA có đặt Pass kiểu gì thì cũng bị phá. Viết bằng .NET biên dịch thành .DLL là xem như xong.

                Ghi chú


                • #9
                  Ðề: ActiveX_AutoCad

                  Nguyên văn bởi i=i+1 View Post
                  Công nhận bác quả là một tay lập trình có dự đoán rất tốt( LT cũng rất tốt)
                  Hiện tại Cad từ phiên bản 2005- 2010 đã hỗ trợ .NET
                  Viết trên .NET thi thì khỏi phải bàn
                  bảo mật của nó thì OK rồi, không như thằng VBA có đặt Pass kiểu gì thì cũng bị phá. Viết bằng .NET biên dịch thành .DLL là xem như xong.
                  Không hẳn như vậy, mã nguồn của .NET sẽ được dịch sang Microsoft Intermediate Language (thường được viết tắt là"Intermediate Language", hay "IL") tương tự như ý tưởng về mã Java byte, nó là một ngôn ngữ cấp thấp với những cú pháp đơn giản (dựa trên cơ sở mã số hơn là text), chính điều này sẽ làm cho quá trình dịch sang mã máy nhanh hơn nhưng cũng rất dễ dịch ngược mã nguồn để phá khóa<sup>[*]</sup>.
                  ---------------------------------------------------
                  [*] Lập trình với C Sharp
                  (Bách khoa toàn thư mở kết cấu công trình xây dựng)

                  Ghi chú


                  • #10
                    Ðề: ActiveX_AutoCad

                    Em chính là Tran Duc Minh đây (đó là nick cũ của em, ko hiểu sao năm 2006 tự nhiên nick ko vào dc nữa, 1 số anh cũng như em)
                    hic, lâu quá rồi mới vào lại trang phần mềm xem. Tự nhiên có bạn nào post lên nữa làm cho topic này nhảy lên. Em lại thấy em lúc xưa . Bây giờ cơm áo gạo tiền, giờ bỏ hết rồi, đọc lại thấy lúc là sv và mới ra trường đam mê cống hiến quá. Giờ thì hết rồi, chỉ mê làm giàu theo đúng ngành thôi. Cũng ko viết lách gì cả, bữa nào rãnh em đưa lên hết cho ae, bung code hết để đàn em đi sau lấy dc cái gì thì lấy về coi.

                    Ghi chú


                    • #11
                      Ðề: ActiveX_AutoCad

                      Nguyên văn bởi civilbd View Post
                      Em chính là Tran Duc Minh đây (đó là nick cũ của em, ko hiểu sao năm 2006 tự nhiên nick ko vào dc nữa, 1 số anh cũng như em)
                      hic, lâu quá rồi mới vào lại trang phần mềm xem. Tự nhiên có bạn nào post lên nữa làm cho topic này nhảy lên. Em lại thấy em lúc xưa . Bây giờ cơm áo gạo tiền, giờ bỏ hết rồi, đọc lại thấy lúc là sv và mới ra trường đam mê cống hiến quá. Giờ thì hết rồi, chỉ mê làm giàu theo đúng ngành thôi. Cũng ko viết lách gì cả, bữa nào rãnh em đưa lên hết cho ae, bung code hết để đàn em đi sau lấy dc cái gì thì lấy về coi.
                      Anh em dang chờ bác đấy

                      Ghi chú

                      Working...
                      X