Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.12.25;
Скачать: CL | DM;

Вниз

зациклился на циклах(начинающий)   Найти похожие ветки 

 
Сергей М. ©   (2011-09-12 16:54) [40]


> Станок надеюсь будет работать по дереву


Ну по дереву еще ладно - дерево и не такое стерпит)..
Там плюс-минус туда-сюда пол-сантимметра потом допиливается, шпаклюется-шлифуется и лажа "станкопрограммиста" в результате практически не заметна)


 
LAZudhic   (2011-09-12 16:58) [41]

вот можешь воодушевить =)


 
LAZudhic   (2011-09-12 17:25) [42]

НУ ЧТО поехали нужна маленькая помощь к примеру при нажатии кнопки пуск запускается цикл а при нажатии кнопки стоп и команды break выход из цикла(посоветуйте как это сделать и если не сложно объяснить )
вот код программы после создания второй кнопки:

unit Unit155;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}
function Inp32(PortAdr: word): byte; stdcall; external "inpout32.dll";
function Out32(PortAdr: word; Data: byte): byte; stdcall; external "inpout32.dll";
procedure TForm1.Button1Click(Sender: TObject);
var i,j,a,b: Integer;
begin
for i := 1 to 400 do
begin
out32(888,17);
out32(888,19);
sleep(20);
out32(888,18);
out32(888,22);
sleep(20);
out32(888,20);
out32(888,28);
sleep(20);
out32(888,24);
out32(888,25);
sleep(20);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin

end;

end.


 
Inovet ©   (2011-09-12 18:06) [43]

> [42] LAZudhic   (12.09.11 17:25)
> при нажатии кнопки пуск запускается цикл а при нажатии кнопки
> стоп и команды break выход из цикла


type
 TForm1 = class(TForm)
   btStart: TButton;
   btStop: TButton;
   procedure btStartClick(Sender: TObject);
   procedure btStopClick(Sender: TObject);
 private
   { Private declarations }
   FlagStop: bool;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btStartClick(Sender: TObject);
begin
 FlagStop := false;
 while not FlagStop do
 begin
   Application.ProcessMessages;
 end;
 ShowMessage("Stop");
end;

procedure TForm1.btStopClick(Sender: TObject);
begin
 FlagStop := true;
end;

end.


 
Сергей М. ©   (2011-09-12 21:20) [44]

Дрова из-под такого станка выползут, вестимо, классные)
Чуть драчевым напильником шлифануть - и готова итальянская мебель)


 
Inovet ©   (2011-09-12 21:31) [45]

А движки от принтера не надорвутся деревяшки таскать?


 
Германн ©   (2011-09-13 00:24) [46]


> LAZudhic   (12.09.11 17:25) [42]
>
> НУ ЧТО поехали

Мне одному кажется, что код по ссылке - "перевод на Дельфи" старой Паскалевской проги, написанной для MSDOS?


 
Inovet ©   (2011-09-13 09:21) [47]

> [46] Германн ©   (13.09.11 00:24)
> что код по ссылк

По какой ссылке?


 
Германн ©   (2011-09-13 10:37) [48]


> По какой ссылке?

Ну там, где "Поехали".
LAZudhic   (12.09.11 17:25) [42]


 
Inovet ©   (2011-09-13 10:55) [49]

> [48] Германн ©   (13.09.11 10:37)
> Ну там, где "Поехали".
> LAZudhic   (12.09.11 17:25) [42]

ДОСовская по управлению шаговым двигателем? По распайке разъёма разве что пожно идентифицировать.
Идентифицировал
http://subscribe.ru/archive/comp.hard.38445/200704/15064647.html


 
aleko ©   (2011-09-13 18:22) [50]


> Для компонентов можно использовать венгерскую нотацию, типа
> btnStart или dlgOpenFile или lblTime.

Что такое венгерская нотация? Первый раз слышу...
Достаточно мало-мальски знать англоязычный язык. Хотя и у меня с ним не совсем ладно, однако слова типа алярм, ворнинг, сэйв и импорт вполне понимаю. А для других случаев в сети есть транслейтер. Переведет хоть с языка суахили.


 
Inovet ©   (2011-09-13 18:43) [51]

> [50] aleko ©   (13.09.11 18:22)
> Что такое венгерская нотация? Первый раз слышу...

Забанили в поиске?
http://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%BD%D0%B3%D0%B5%D1%80%D1%81%D0%BA%D0%B0%D1%8F_%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F


 
LAZudhic   (2011-09-13 20:07) [52]

А движки от принтера не надорвутся деревяшки таскать?-всё зависит от типа редуктора конечно страдает производительность повышается точность и к тому же я не деревяшки таскать буду а двигатель с фрезой над деревяшками
теперь второе наконец избавился от цикла for в программе. Кроме палок в колёса и насмешок всё таки были дельные советы спасибо
теперь программа приобрела вот такой вид:

unit Unit15;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;// кнопка Пуск
   Button2: TButton;// кнопка СТОП
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 Stop: Boolean = False;
implementation

{$R *.dfm}
function Inp32(PortAdr: word): byte; stdcall; external "inpout32.dll";
function Out32(PortAdr: word; Data: byte): byte; stdcall; external "inpout32.dll";
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer; // переменые
begin
 Button2.Enabled:=True;
 Button1.Enabled:=False;
 Stop:=False;
while not(Stop) do // длительность цикла
begin
//for i := 1 to 10 do

out32(888,17);// вывод на лпт pin 2,упр pin6
out32(888,19);//вывод на лпт pin 2,3,упр pin6
sleep(20);// пауза в милисекундах
out32(888,18);//вывод на лпт pin 3,упр pin6
out32(888,22);//вывод на лпт pin 3,4,упр pin6
sleep(20);// пауза в милисекундах
out32(888,20);//вывод на лпт pin 4,упр pin6
out32(888,28);//вывод на лпт pin 4,5,упр pin6
sleep(20);// пауза в милисекундах
out32(888,24);//вывод на лпт pin 5,упр pin6
out32(888,25);//вывод на лпт pin 5,1,упр pin6
sleep(20);// пауза в милисекундах
Application.ProcessMessages
end
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Stop:=True;
 Button2.Enabled:=False;
 Button1.Enabled:=True;

end;

end.


 
LAZudhic   (2011-09-13 21:27) [53]

ну а теперь нужна помощь в другом как сделать чтоб 1-картинка JPEG сразу появлялась на форме после запуска программы и 2-можно ли без такого типа С:\1\1\1.jpg а проще если рисунок находится в том же каталоге с программой типа 1.jpg(рисунок будет отображать электронную схему при которой правильно будет работать программа ) код программы изложен выше что и куда дописать при использование image на форме?(надеюсь что ответ будет мне понятен будьте пожалуйста подробней    )  заранее СПС =)


 
Сергей М. ©   (2011-09-13 21:37) [54]


> надеюсь что ответ будет мне понятен


зря надеешься.
спроси почему.
а может сам догадаешься, перечитав свою же ахинею ?


 
Dennis I. Komarov ©   (2011-09-13 21:37) [55]

Плохиш в отпуске?
Ну в самом деле...


 
LAZudhic   (2011-09-13 22:04) [56]

придётся опять самому весь интернет перекапывать вытаскивать из примеров с кнопками и прочих примеров на других сайтах впихивать их в свою программу и глядеть а вдруг получится нет не получается и дня три убить на то чтобы получилось как задумал ведь приятно когда с твоей программой учебника не надо а каждый прекрасно понимает для чего и как она будет работать (ну к примеру винап вы что учебник как правильно настроить использовать читали ,нет просто там всё понятно что для чего а теперь найдите программу для ЧПУ и вот вам и учебник нужен как правильно настроить что где поставить а в результате и второй раз вы полезете в учебник если первый раз всё таки установили я хочу чтоб даже 10 летний мальчуган не гонял по интернету в поисках ответа на данную программу  )ай ладно не фотошоп же делаю мне денег за это не отсыпят


 
Dennis I. Komarov ©   (2011-09-13 22:27) [57]


> придётся опять самому...

и это единственный путь познания дао...


 
Inovet ©   (2011-09-13 22:27) [58]

> [56] LAZudhic   (13.09.11 22:04)
> винап вы что учебник как правильно настроить использовать
> читали ,нет просто там всё понятно что для чего а теперь
> найдите программу для ЧПУ

ЧПУ посложнее Винампа вообще-то. Ребёнка 10-тилетнего к фрезе нельзя подпускать, и взрослого нельзя без сдачи экзамена по правилам техники безопасности.


 
Inovet ©   (2011-09-13 22:40) [59]

> [52] LAZudhic   (13.09.11 20:07)
>   Button1: TButton;// кнопка Пуск
>   Button2: TButton;// кнопка СТОП

И эта. Я там в примере имена не поленился нормальные дать, а ты снова Батон1, Батон2. И текст программы не форматируешь. Я уж не говорю, что в таком виде она бессмысленная.

Загружать схему. Какую схему - тебе программу для ЧПУ надо загружать и выполнять её в своей, для этого определиться с набором команд, потом с форматом хранения программы, в чём её будешь генерировать или вручную расчитывать и набивать. В управляущей программе, о которой мы тут говорим, надо предусмотреть чтение из файла сохранённой программы ЧПУ, разбор по операциям, их выполнение, и уже на сам нижнем уровне управление двигателями.


 
LAZudhic   (2011-09-13 23:08) [60]

так тут пожалуй СТОП а ты может и знаешь на какие контакты будет идти управление а на какие поворот двигателя у меня их подключено будет 3 Х,Y,Z плюс включение реле для фрезы например или выжегателя и т.п. а контактов всего 8(pin) на выход из LPT на шаговом двигателе от 4 до 6 проводов
и так задоча для какой я схемы сделал программу ????????????


 
LAZudhic   (2011-09-13 23:20) [61]

да к стати даже вот такой программы не найдёшь чтоб проверить работает ли собранная схема или нет на сайтах чпу ,там сразу предлагают буржуйские демо программы а русские программисты вообще молчат максимум управление светодиодами


 
Inovet ©   (2011-09-13 23:42) [62]

> [60] LAZudhic   (13.09.11 23:08)
> и так задоча для какой я схемы сделал программу ????????????

Да пофиг для какой. Это нижний уровень - драйвер, он отрабатывает элементарные команды: сдвинуть в (х, y), опустить, поднять, включить, выключит и т.п.. Это отдельная программа считай. А ты про какие-то схемы в JPG как на экране рисовать.


 
Германн ©   (2011-09-14 00:16) [63]

Нормальные разработчики ПО для заводских станков, стендов и т.д. и т.п. делают для них контроллеры на микропроцессорах, которые и выполняют всю тонкую работу типа управления шаговыми двигателями. Причём с очень большой точностью (так что подойдёт не только для дерева! :) А ПО на персональном компьютере только задаёт в нужный момент нужную программу действий для контроллера, общаясь с ним по СОМ-порту/USB-порту и т.д. и т.п. без всяких временнЫх проблем.


 
Inovet ©   (2011-09-14 00:37) [64]

> [63] Германн ©   (14.09.11 00:16)
> делают для них контроллеры на микропроцессорах

Вот. И автор когда-нибудь переделает, а в программе, при изначально грамотном подходе, надо будет заменить только "драйвер". Впрочем, пока и его нет.


 
Германн ©   (2011-09-14 00:42) [65]


> Вот. И автор когда-нибудь переделает, а в программе, при
> изначально грамотном подходе, надо будет заменить только
> "драйвер".

В ПО при изначально грамотном подходе останется только сделать удобный интерфейс. Удобный для конкретного пользователя. Что мы и делали уже для ЗИЛ"а, ПЕКАРЗ"а и ДААЗ"а.


 
Inovet ©   (2011-09-14 00:44) [66]

> [64] Inovet ©   (14.09.11 00:37)

Я кажется понял всю "глубину" мысли автора. Программа для ЧПУ и будет состоять из последовательности вот таких строк

out32(888, aa);
out32(888, bb);
sleep(20);


 
Германн ©   (2011-09-14 01:09) [67]


> Я кажется понял всю "глубину" мысли автора. Программа для
> ЧПУ и будет состоять из последовательности вот таких строк

Именно так!
Но в ДОСе это нормально (более-менее) работало. Ибо однозадачная ОС. Для Винды сделали функции типа In32/Out32 чтобы работать с портами ввода/вывода. Но нынешний дельфийский Sleep не годится даже в подмётки старому турбопаскалевскому Delay. Именно по причине другой ОС.


 
Inovet ©   (2011-09-14 01:57) [68]

> [67] Германн ©   (14.09.11 01:09)
> Но в ДОСе это нормально

Понятно что в Вин так делать не надо, тем более в настоящее время при доступных микроконтролерах. Я о том что неужели всё изготовление детали будет описано вот таким набором команд коммутации обмоток шагового двигателя.


 
brother ©   (2011-09-14 03:08) [69]

> С:\1\1\1.jpg а проще

да, просто 1.jpg

> (рисунок будет отображать электронную схему при которой
> правильно будет работать программа )

те ты хочешь анализировать чертеж и по нему давать команды на обработку?
я как техник-технолог тяжелого машиностроения говорю: этого сделать практически не реально (может только для простых деталей анализировать контур)...


 
Jeer ©   (2011-09-14 09:55) [70]


> Я о том что неужели всё изготовление детали будет описано
> вот таким набором команд коммутации обмоток шагового двигателя.
>


Ну, челу лень пробежаться в гугле по ключевым словам CNC и, для начала, вот сюда заглянуть

http://vri-cnc.ru/


 
Inovet ©   (2011-09-14 10:30) [71]

> [69] brother ©   (14.09.11 03:08)
> те ты хочешь анализировать чертеж и по нему давать команды на обработку?

Нет, я выше уже понял. Это для удобства программирования обмоток. Ужас.


 
LAZudhic   (2011-09-14 16:40) [72]

нет вы меня не поняли я ещё не хочу заняться управлением я хочу чтобы человек собрав свой первый контролер на тм7 и драйвер(силовая часть) на транзисторах не ломал голову а как мне проверить работает ли он и тут скачав программу в которой есть рисунок (схема простого чпу) и нажимая на клавиши он проверит крутятся ли двигатели если нет то схема перед глазами и он начнёт искать неисправности в электрической части и так вы поможете мне вывести рисунок на форму или нет


 
RWolf ©   (2011-09-14 17:50) [73]


> LAZudhic   (14.09.11 16:40) [72]

чего там выводить, кинул на форму TImage с картинкой да развернул его во все поля.


 
Inovet ©   (2011-09-14 18:14) [74]

> [72] LAZudhic   (14.09.11 16:40)
> рисунок (схема простого чпу)
> и так вы поможете мне вывести рисунок на форму или нет

Архи сложно. Ты прикалываешься?

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls;

type
 TForm1 = class(TForm)
   imgCircuit: TImage;
   btnLoad: TButton;
   procedure btnLoadClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnLoadClick(Sender: TObject);
begin
 imgCircuit.Picture.LoadFromFile("MyCoolCircuit1.bmp");
end;

end.



Страницы: 1 2 вся ветка

Текущий архив: 2011.12.25;
Скачать: CL | DM;

Наверх




Память: 0.64 MB
Время: 0.011 c
2-1315654752
TheEd
2011-09-10 15:39
2011.12.25
Первая видимая запись в TDBStringGrid


2-1315895287
KIR@PRO
2011-09-13 10:28
2011.12.25
TComboBox vs PStrings


2-1316076960
pk
2011-09-15 12:56
2011.12.25
TpFibDataSet передать значение параметру


15-1315415972
ClawClaw
2011-09-07 21:19
2011.12.25
Индиана Джонс (лего)


2-1316273416
Anny
2011-09-17 19:30
2011.12.25
Координаты точек