Тема: VBA приложение - "Вал цилиндрический" для AutoCAD

Может имеется готовый или как написать приложение для вычерчивания фигуры "Вал цилиндрический" и прицепить на кнопку. Одна ступень.
AutoCAD 2006.
Подробности в файле доступеном по адресу: webfile.ru/433927 в течение 7 дней до 01:33 08.08.2005.

Re: VBA приложение - "Вал цилиндрический" для AutoCAD

Покажите хотя бы шаблон или ссылку на что то подобное.
А дальше я уж как нибудь сам.

Re: VBA приложение - "Вал цилиндрический" для AutoCAD

Неужели нет такой простой программы с вычерчиванием прямоугольника, горизонтальной оси и парочки размеров?

Re: VBA приложение - "Вал цилиндрический" для AutoCAD

Лично меня смущает обязательное требование - VBA.

Re: VBA приложение - "Вал цилиндрический" для AutoCAD

> kpblc
Мне нужно, что бы диалог был на форме. Наглядность.
Да вы посмотрите файлик webfile.ru/433927 .
Сразу будет понятно. Без лишней писанины.
Можно наверно и LISP+DCL. Но, не знаю этих возможностей.

Re: VBA приложение - "Вал цилиндрический" для AutoCAD

Вот, что я писал на другом языке дя другого CAD'а. Может поможет.

// Shaft-31 .
 // Macro, which creates figure "Shaft - cylinder"
 // Author   ++++++++++ July 1997
 // Copyright ?  ++++++++ 3d-forma
 // Phone  (000) +++++++
 // Compuserve ------------------
 // ****** DATA DECLARATION ******
 HANDLE  hDlg;
 NUMBER d,l,n1ci,n2co,CheckPrj,CheckDim,nCheckAxis;
 STRING  sText, lText,sNumber;
 XY  xyStart;
//d1=0
 Undo("start");
 // ****** DIALOG BOX ******
 hDlg = Open("dialog", "Shaft-cylinder", "font Arial 8", 150, 48,110,95);
AddControl(hDlg, "bitmap",1, 1, 108,39,"c:/Softdesk/Macros-3/W_31B.BMP","" ,"");  //stretch
    AddControl(hDlg, "gray", 0,0, 110, 35, "", "", "");
  AddControl(hDlg, "ltext",  4, 42, 20, 10, "D=", "", "");
  AddControl(hDlg, "ledit", 20, 40, 30,12, "", "NUMBER", "d");
       AddControl(hDlg, "ltext",  54, 42, 20, 10, "L=", "", "");
  AddControl(hDlg, "ledit", 70, 40, 30,12, "", "NUMBER", "l");
      AddControl(hDlg, "checkbox left", 4, 60, 25, 15, "Prj", "Number", "CheckPrj");
      AddControl(hDlg, "checkbox left", 40, 60, 30, 15, "Axis", "Number", "nCheckAxis");
  AddControl(hDlg, "checkbox left", 80, 60, 25, 15, "Dim", "Number", "CheckDim");
                AddControl(hDlg, "defaultbutton", 26, 80, 30, 12, "OK", "%ok", ""); //highlighted "ok" box
 AddControl(hDlg, "pushbutton", 60, 80, 30, 12, "Cansel", "%cancel", ""); //unhighlighted "cancel" box
 //Display dialog box
 Ok = Display("dialog", hDlg, "%center"); // by typing %center inside the last quotes
      // the entire box will appear in the center
 Close("dialog", hDlg);   // this closes the dialog box and removes it from view
 if(Ok != %ok)    // Continue if OK
  {
  Undo("end");
  Exit(%ok, "User Canceled !");
  }
 // Information from User
 sText = sText+" ";
 i = Value("scalar", sNumber);
 // Major Loop
 if(!GetUser("xy", "Select position for figure", &xyStart))
  {
  Undo("end");
 Exit(%ok, "Done !");
 }
SetData("PenColor",-1);
SetData("PenStyle", -1);
SetData("PenWidth",-1);
hEntity = AddEntity("line", xyStart.x,xyStart.y+d/2,xyStart.x,xyStart.y-d/2);
hEntity = AddEntity("line", xyStart.x,xyStart.y+d/2,xyStart.x+l,xyStart.y+d/2);
hEntity = AddEntity("line", xyStart.x,xyStart.y-d/2,xyStart.x+l,xyStart.y-d/2);
hEntity = AddEntity("line", xyStart.x+l,xyStart.y+d/2,xyStart.x+l,xyStart.y-d/2);
                if(nCheckAxis==1)
{
SetData("PenColor", 4);
SetData("PenStyle", 6);
SetData("PenWidth",0);
hEntity = AddEntity("line", xyStart.x-3,xyStart.y,xyStart.x+l+3,xyStart.y);
}
                if(CheckPrj==1)
{
SetData("PenColor",-1);
SetData("PenStyle", -1);
SetData("PenWidth",-1);
hEntity = AddEntity("circle", xyStart.x+l+d,xyStart.y,d/2);
              if(nCheckAxis==1)
{
SetData("PenColor", 4);
SetData("PenStyle", 6);
SetData("PenWidth",0);
hEntity = AddEntity("line", xyStart.x+l+d/2-3,xyStart.y,xyStart.x+l+1.5*d+3,xyStart.y);
hEntity = AddEntity("line", xyStart.x+l+d,xyStart.y+d/2+3,xyStart.x+l+d,xyStart.y-d/2-3);
}
}
        if(CheckDim==1)
{
hEntity = AddEntity("dimlin", "horizontal", xyStart.x,xyStart.y-d/2,xyStart.x+l,xyStart.y-d/2,2.5,xyStart.y-d/2-8,0);
hEntity = AddEntity("dimlin", "vertical", xyStart.x,xyStart.y+d/2,xyStart.x,xyStart.y-d/2,xyStart.x-8,0);
}
  sText = MakeString("long", d);
  lText = MakeString("long", l);
//SetData("Font",14);
SetData("PenColor", 6);
hEntity = AddEntity("text", "D="+sText, xyStart.x+2, xyStart.y+d/5,1.6,2,0);
hEntity = AddEntity("text", "L="+lText, xyStart.x+16, xyStart.y+d/5,1.6,2,0);
//SetData("PenStyle", 0);
 // Exit if in error
 Exit(%ok, "OK !");

Re: VBA приложение - "Вал цилиндрический" для AutoCAD

> kpblc
Требование - VBA не обязательное.
Просто в VBA я худо- бедно разбираюсь.
А в LISP'е - ноль полный.

Re: VBA приложение - "Вал цилиндрический" для AutoCAD

> Forma
Да некогда просто, не обижайся. Если будет шанс (по времени и знаниям), сделаю что-нить. Вчера начинал, да система квакнула в самый неподходящий момент :(

Re: VBA приложение - "Вал цилиндрический" для AutoCAD

всё таки думаю надо сказать не только результат действия программы, но и для чего это надо... В листе, в модели, как воодить размеры планируется и т.д. Ещё кучу всего можно невертеть... Сама по себе операция ничего сложного не представляет.

Re: VBA приложение - "Вал цилиндрический" для AutoCAD

Приношу извинения посетителю, который спрашивал:" Что это за CAD и что это за язык?". Забыл о собственных постах :(
Это "Drafix v.3 и v.4". Язык- один из диалектов Си 4.

Re: VBA приложение - "Вал цилиндрический" для AutoCAD

файлик перезалей или выложи где нибудь, где не удаляют

Re: VBA приложение - "Вал цилиндрический" для AutoCAD

> Boxa
доступен по адресу: webfile.ru/484941 в течение 7 дней до 04.09.2005.

Re: VBA приложение - "Вал цилиндрический" для AutoCAD

НУ вообщем вот первые наброски...
В программе нет ни одной проверки на правильность вводимых данных, но если не особо вредничать то все работает.
Ваш файл for_autocadRU.zip (размер 41 кбайт)
доступен по адресу: webfile.ru/485485 в течение 7 дней до 14:33 04.09.2005.

Re: VBA приложение - "Вал цилиндрический" для AutoCAD

> Boxa
Скачал. Поставил. Все заработало сразу. Посмотрел как это делается.
То что нужно. Спасибо. Теперь я сам смогу написать подобные прграммы.Небольшие. Но очень нужные. Огромное спасибо.