Đến nội dung


Hình ảnh
- - - - -

Hỏi về Control User Input trong AutoCAD.NET?


  • Please log in to reply
4 replies to this topic

#1 nvson

nvson

    biết vẽ ellipse

  • Members
  • PipPip
  • 52 Bài viết
Điểm đánh giá: 4 (bình thường)

Đã gửi 02 May 2013 - 04:37 PM

Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Runtime
 
<CommandMethod("GetKeywordFromUser")> _
Public Sub GetIntegerOrKeywordFromUser()
  Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument

Dim pKeyOpts As PromptKeywordOptions = New PromptKeywordOptions("")
                pKeyOpts.Message = vbLf & "Enter an option "
                pKeyOpts.Keywords.Add("Object")
                pKeyOpts.Keywords.Add("Point")
                pKeyOpts.AllowNone = False
                pKeyOpts.Keywords.Default = "Object"

                Dim pKeyRes As PromptResult = acDoc.Editor.GetKeywords(pKeyOpts)
                '............
End Sub

Ý của tôi là:

Khi chạy đoạn code trên đến đoạn:

Enter an option [Object/Point] <Object>:

thì mặc định tôi có thể chọn được đối tượng luôn (không phải đánh Object hoặc Enter).

Mong cácbác chỉ giúp.

Thanks.


  • 0

#2 Skywings

Skywings

    biết lệnh erase

  • Members
  • PipPipPip
  • 102 Bài viết
Điểm đánh giá: 46 (tàm tạm)

Đã gửi 02 May 2013 - 11:04 PM

Ý bạn là kết hợp song song, vừa chọn đc đối tượng vừa nhận keyword cùng lúc!? Bạn có thể tham khảo cách viết ở đây (bằng C#):

http://through-the-i...tselection.html


  • 0

#3 nvson

nvson

    biết vẽ ellipse

  • Members
  • PipPip
  • 52 Bài viết
Điểm đánh giá: 4 (bình thường)

Đã gửi 03 May 2013 - 12:53 PM

Bạn có thể gửi cho mình đoạn code đó ko?

Mình vào trang đó không được.


  • 0

#4 Skywings

Skywings

    biết lệnh erase

  • Members
  • PipPipPip
  • 102 Bài viết
Điểm đánh giá: 46 (tàm tạm)

Đã gửi 03 May 2013 - 04:42 PM

Ok, code C# bạn nghiên cứu nhé:

using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime; 

namespace MyApplication
{
  public class Commands
  {
    [CommandMethod("SELKW")]
    public void GetSelectionWithKeywords()
    {
      Document doc = Application.DocumentManager.MdiActiveDocument;
      Editor ed = doc.Editor;

      // Create our options object
      PromptSelectionOptions pso = new PromptSelectionOptions(); 

      // Add our keywords
      pso.Keywords.Add("FIrst");
      pso.Keywords.Add("Second");

      // Set our prompts to include our keywords
      string kws = pso.Keywords.GetDisplayString(true);

      pso.MessageForAdding = "\nAdd objects to selection or " + kws;
      pso.MessageForRemoval = "\nRemove objects from selection or " + kws; 

      // Implement a callback for when keywords are entered
      pso.KeywordInput +=
        delegate(object sender, SelectionTextInputEventArgs e)
        {
          ed.WriteMessage("\nKeyword entered: {0}", e.Input);
        };

      // Finally run the selection and show any results
      PromptSelectionResult psr = ed.GetSelection(pso);

      if (psr.Status == PromptStatus.OK)
      {
        ed.WriteMessage( "\n{0} object{1} selected.",
          psr.Value.Count,
          psr.Value.Count == 1 ? "" : "s"
        );
      }
    }
  }
}

 


  • 0

#5 nvson

nvson

    biết vẽ ellipse

  • Members
  • PipPip
  • 52 Bài viết
Điểm đánh giá: 4 (bình thường)

Đã gửi 03 May 2013 - 06:57 PM

Cảm ơn bạn nhé.
Mình sẽ test xem sao.
  • 0