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

Jin Yong

Vip
  • Số lượng nội dung

    494
  • Đã tham gia

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

  • Ngày trúng

    15

Bài đăng được đăng bởi Jin Yong


  1. Bác Hùng à! Em xin được ngâm cứu code của Bác. Bác có cho phép không ạ.

     

    Bạn cứ tự nhiên, trên thực tế CTK ko phải là một chương trình quá độc đáo đòi hỏi thuật toán phức tạp nên mình tin dù mình ko đồng ý thì bạn hay bất kì người nào khác cũng có thể sáng tạo ra một phần mềm tương tự thậm chí độc đáo và tiện dụng hơn. Về mặt tiện dụng, đây là một khái niệm mang tính chủ quan, mình đã viết CTK theo cách thức làm việc của mình và vì thế với mình, nó khá tiện dụng :D

     

     

    Bác Jin ơi, em đang phải làm ĐABT và bây giờ mới dùng đến bảng tkt.Hiện tại em đang dùng Acad2012 khi sử dụng bảng tkt thì nó lỗi hết Font chữ,giờ muốn dùng trên cad 012 thì sao đc bác!

    Thank !

     

    Font ko phụ thuộc vào phiên bản CAD, bạn chỉ cần lên mạng search font vnsimpli.shx và copy vào thư mục font của CAD là ok!

     

    Chào bạn Jing Yong, mình có vài ý như sau:

    1. bản này chạy OK trên CAD 2010 nhưng lại ko chạy dc trên 2007 :rolleyes:

    2. Khi mình nhập thử 2 thanh thép giống nhau (hình dạng, dk, chiều dài) nhưng chương trình ko tự "gom" lại.

    3. Theo mình nên xài font Unicode thay cho font vn vì thông dụng. Nếu muốn xài font vn bạn nên kèm theo file chương trình vì ko phải ai cũng có font đó.

     

    Theo mình bạn nên gom lại thành 1 bản dùng cho tất cả các version CAD, và thêm function để "gom" các loại giống nhau lại thành 1 (tăng số lượng).

    Chúc bạn thành công!

     

    Theo Jin được biết thì có sự ko thống nhất giữa các file thư viện của các đời autocad, đơn giản nhất là việc gán TextStyle của các phiên bản này ko giống nhau, ngoài ra còn các vấn đề về Block. Ở các phiên bản CAD2007-2009, các style được gán thông qua ID, nhưng phiên bản CAD2010 trở đi có thể gán trực tiếp qua Tên. Cho nên khó có thể viết được 1 phần mềm có thể sự dụng chung cho các đời CAD khác nhau trong khi đầu vào (các thư viện liên kết động) lại phụ thuộc vào phiên bản của chính AutoCAD

     

    Ý tưởng gom thống kê là rất hay, đúng là một chuyên gia detailing, tuy nhiên nên nhớ đây ko phải là một chương trình tự động thống kê, chương trình thống kê dựa vào bản vẽ có sẵn nên việc tự động gom thống kê sẽ dẫn đến mâu thuẫn với thiết kế, gây phiền hà cho chính người sử dụng.

    • Vote tăng 1

  2. A Hùng cho e hỏi 1 chút là với CAD 11 trở lên thì trở ngại là gì ạ ?

    Về chương trình :

    - Giao diện có lẽ chưa được chăm chút nhiều ^^, mục list thanh bên phải có vẻ xấu hơn so với bản 4.0.File Tk vẫn hok có Icon ^^

    - Nhanh và nhạy hơn bản 4. Số lượng thanh đã lớn hơn hẳn. Sử dụng ATT Block thay cho các đối tượng Text rời rạc nên kiểm soát dễ dàng hơn.

    - Mục add thanh đã bổ sung Số hiệu cấu kiện nên linh động hơn

    - Event Keypres Enter khi trỏ chuột ở mục Cấu kiện vẫn được nhận là add thêm thanh chứ không phải add cấu kiện (giống bản 4)

    Ngoài ra, còn 1 số chức năng khác, e chắc rằng bác vẫn đang bổ sung ^^

     

    Từ Ver 11 trở đi cấu trúc dữ liệu của CAD có một số chỗ thay đổi, khiến các lệnh viết sử dụng DLL của CAD2007 ko dùng được cho CAD2011, muốn dùng được phải sửa và biên dịch file DLL riêng!

    Sử dụng ATTBlock cho thống kê có thể khiến người dùng sửa được trực tiếp thống kê trong CAD, hoặc thậm chí có thể từ bản CAD dựng lên file nguồn *.tk5, tuy nhiên các mục này vẫn nằm trong dự kiến, chưa có điều kiện triển khai :)


  3. A Hùng cho e hỏi 1 chút là với CAD 11 trở lên thì trở ngại là gì ạ ?

    Về chương trình :

    - Giao diện có lẽ chưa được chăm chút nhiều ^^, mục list thanh bên phải có vẻ xấu hơn so với bản 4.0.File Tk vẫn hok có Icon ^^

    - Nhanh và nhạy hơn bản 4. Số lượng thanh đã lớn hơn hẳn. Sử dụng ATT Block thay cho các đối tượng Text rời rạc nên kiểm soát dễ dàng hơn.

    - Mục add thanh đã bổ sung Số hiệu cấu kiện nên linh động hơn

    - Event Keypres Enter khi trỏ chuột ở mục Cấu kiện vẫn được nhận là add thêm thanh chứ không phải add cấu kiện (giống bản 4)

    Ngoài ra, còn 1 số chức năng khác, e chắc rằng bác vẫn đang bổ sung ^^

     

    Từ Ver 11 trở đi cấu trúc dữ liệu của CAD có một số chỗ thay đổi, khiến các lệnh viết sử dụng DLL của CAD2007 ko dùng được cho CAD2011, muốn dùng được phải sửa và biên dịch file DLL riêng!

    Sử dụng ATTBlock cho thống kê có thể khiến người dùng sửa được trực tiếp thống kê trong CAD, hoặc thậm chí có thể từ bản CAD dựng lên file nguồn *.tk5, tuy nhiên các mục này vẫn nằm trong dự kiến, chưa có thời gian phát huy :)


  4. Tôi không biết bạn đang dùng chương trình soạn thảo gì nhưng nếu bạn khai báo biến đúng thì không có lí do gì "chương trình soạn thảo không nhận".

     

    Phụ thuộc vào mục đích (ý đồ) của lập trình viên, các thuộc tính (properties) có thể gán(gọi) tại bất kỳ đâu trong Application.

    - trong cửa sổ Property của chương trình soạn thảo

    - trong các event như ý của phamngoctukts

    - hay như ý của Jin Yong : truớc khi hiển thị Form (gọi ShowModalDialog...)

     

    Cảm ơn gia_bach, mình đã làm như ví dụ và đã có kết quả :)


  5. Bạn gia_bach thân mến, ý mình ở đây chính là chương trình soạn thảo không nhận ra được frmHieuChinhMot chính là một form, do đó dòng lệnh frmHieuChinhMot.TextBox1.Visible không có hiệu lực

    Với lại, nếu mình hiển thị form theo cách của bạn: Application.ShowModalDialog(myForm)

    thì có thể gõ:

     

    myForm.TextBox1.Visible = True

    Application.ShowModalDialog(myForm)

     

    duoc khong?


  6. Anh Jin oi , cho e hoi , tại sao e m làm theo hướng dẫn nhưng khi chọn file (*tkf) xong cad báo lỗi : Microsoft Visual Basic > Compile error in hidden module : molCTK

    ấn vào OK thì ko thây bảng thống kê đâu cả ! Giúp em với e đang cần gấp ! Cám ơn a !

     

    Rất tiếc mình chưa gặp lỗi này bao giờ nên không thể giúp bạn được.

    Mình sẽ cố gắng hoàn thiện sớm bản 5.0 viết trên nền .NET để phù hợp với các phiên bản mới của CAD và hoàn chỉnh các chủng loại thống kê hơn


  7. Chương trình Thống kê thép sàn này Tue_NV đã làm hồi tháng 3 năm ngoái. Ngót cũng hơn 1 năm rồi. Mình viết bằng Lisp+Visualisp+DCL . Đến nay, đã xong rồi, rút ngắn thời gian rất đáng kể cho việc vẽ, sửa chữa thép, đánh số thứ tự, thống kê, tổng hợp, chỉ còn thêm thắt 1 vài lệnh nữa để vẽ cho nhanh thêm thôi. Vì nhiều lý do khác nhau, nên mình chưa thể upload file và chương trình lên đây được. Mong Ketxu và các bạn thông cảm.

     

    @Bạn Tú : Chiều dài rải thép thể hiện bằng việc pick 2 điểm là chưa là hợp lý và chưa thuận tiện cho người sử dụng

    -> như bạn đã thừa nhận Chiều dài rải thép là có thay đổi đấy thôi (Phần vì User không lường hết được trong bản vẽ cộng với các vấn đề phát sinh như sửa chữa bản vẽ....)

    1 vấn đề nói ra thì quá đơn giản : Thống kê thép sàn nhưng nó hàm chứa quá nhiều vấn đề cần giải quyết.........

     

    Trờ ngại đáng kể có lẽ là lưu lại và hiển thị được vùng rát thép, không biết Tú đã có giải pháp gì chưa?


  8. Chào Bác!

    Em đã nghe ketxu giới thiệu nhiều về Bác.

    Đúng là em đang gặp một số vấn đề trong chương trình.

    Với cái method SetXdata trong VB.Net bị lỗi "invalid argument type in SetXdata method" em đã search nhiều trên net mà chưa thấy ai đưa ra được cách giải quyết vấn đề này. Rất mong được sự góp ý của anh em trên diễn đàn!!!

    Anh chưa có sử dụng cái XData này bao giờ :huh: . Anh chưa đọc kỹ lắm nhưng em xem thử bài viết này có giúp ích được gì không!


  9. Dạo này mới thấy aH quay lại diễn đàn ^^ A ơi cho e hỏi Visual Studio 10 và VB.Net có quan hệ như thế nào ạ ^^

    @a Tú : Go on...

    Theo mình hiểu thì VB.NET là Visual Basic phát triển phần mềm trên nền tảng .Net FrameWork, tất cả các phiên bản về sau của Visual Basic (kể từ 2005) đều là VB.NET

    Hiện nay ở Topic Chương trình Vẽ Thép và tự động thống kê thép VNStructureDetailing đang giới thiệu một phần mềm rất nổi bật, phát triển trên nền tảng .NET, đích thị là AutoCad.NET (nguồn là VB hay C thì ko rõ). Không biết nhóm phát triển phần mềm này có liên hệ gì với AutoCAD hay không, vì giao diện có vẻ rất giống với AutoCad Structural Detailing. Dù có liên hệ hay không thì họ cũng đang phát triển một phần mềm mang tính đột phá cao (he he, có khi hơn cả Dras, nhất là tính Pro thì khỏi nói).

     

    Ở công ty cũng đang giao cho mình nhiệm vụ phát triển một bộ phần mềm như vậy, tuy nhiên vẫn theo cách thức của Dras. Vì công việc bận rộn nên tiến độ vẫn chậm chạp. Nhìn đà phát triển của VNStructuralDetailing mà nóng cả mặt

     

    Bạn Tu đây cũng đang phát triển modul Sàn. Tuy nhiên mình đoán chắc vẫn còn có những vướng mắc khó giải quyết, hy vọng bạn sẽ tìm được hướng đi để mình còn... học theo :D


  10. Đã tìm thấy hướng đi. Gải quyết được các việc sau.

    1. Ghi chú thép cùng loại cùng chiều dài.

    2. update bảng thống kê khi chiều dài thanh thép thay đổi.

    Còn vướng 1 chút về thống kê số lượng thanh khi chiều dài dải thép thay đổi.

    Bắt tay vào việc thôi!!

     

    Hy vọng bạn sẽ sớm ra phiên bản mới!


  11. Mất khá nhiều thời gian, sau khi kết hợp cả tây lẫn ta, cuối cùng đoạn mã sau của mình đã có kết quả, Attribute đã hiện ra :|

     

    Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
           Dim acCurDb As Database = acDoc.Database
           Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
               Dim acBlkTbl As BlockTable = acTrans.GetObject(acCurDb.BlockTableId, DatabaseServices.OpenMode.ForRead)
               Dim acBlkTblRec As BlockTableRecord = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), DatabaseServices.OpenMode.ForWrite)
               Dim InsertID As ObjectId = acBlkTbl.Item("TK_2")
               Dim BlockRef As BlockReference = New BlockReference(New Point3d(1, 1, 0), InsertID)
               acBlkTblRec.AppendEntity(BlockRef)
    
               Dim BLR As BlockTableRecord = acTrans.GetObject(BlockRef.BlockTableRecord, DatabaseServices.OpenMode.ForWrite)
               Dim ent As Entity
               For Each attID As ObjectId In BLR
                   ent = acTrans.GetObject(attID, DatabaseServices.OpenMode.ForWrite)
                   If ent.GetType.Name = "AttributeDefinition" Then
                       Dim attDef As AttributeDefinition = ent
                       Dim AttRef As AttributeReference = New AttributeReference
                       AttRef.SetAttributeFromBlock(attDef, BlockRef.BlockTransform)
                       If AttRef.Tag = "DK" Then attDef.TextString = "10"
    
                       BlockRef.AttributeCollection.AppendAttribute(AttRef)
                       acTrans.AddNewlyCreatedDBObject(AttRef, True)
                   End If
               Next
               acTrans.AddNewlyCreatedDBObject(BlockRef, True)
               acTrans.Commit()
           End Using


  12. Mình bị 2 lỗi này giống y bạn

     

    Bác Jin ơi xin giúp e với! e dùng ngay cả với file Cad mẫu của anh cũng bị!

     

    bản 3.1 thì nó vẽ ra 1 cái bảng trống không

     

    bản 4.0 thì nó báo lỗi " Compile error in hidden module : molCTK " với tất cả các lệnh trên module. máy này e xài win7

     

    để mai lên cty e thử lại với XP xem thế nào rồi báo anh. Ngày xưa e dùng bản 3.1 rất ok

     

    Mình cũng không hiểu lỗi này là do đâu :(

    Mình đang nâng cấp CTK lên phiên bản mới, có các chủng loại thép đa dạng hơn và phù hợp hơn với các bản CAD đời mới

×