Свой САПР на базе Компас

Автор Mihonius, 14.03.13, 14:21:15

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Инициализацию нужно сделать не вовремя создания формы, когда TStringGrid ещё сам в неопределённом состоянии, а в момент, когда окно станет видимым и все дочерние компоненты будут инициализированы своими стандартными конструкторами.

Mihonius

Используя  FormShow эффект тот же!

04.04.13, 13:14:06 #42 Последнее редактирование: 04.04.13, 13:52:01 от Sabahs
procedure DrawKK;
var
  i, j : Integer;
  sg1 : TStringGrid; - лишняя строка, уже на форме создана SG1: TStringGrid;

if iKompas <> nil then
  begin
    KGAX1.CloseAll;
    iKompas.Quit;
    sg1.Destroy; - лишняя строка.
  end;

sg1:= TStringGrid.Create(Form1); - лишняя

Выкиньте лишние и сделайте инициализацию TStringGrid в FormShow.


Mihonius

sg1:= TStringGrid.Create(Form1); без этого выдает что SG1 - nil

Вы компонент TStringGrid на форму положили в дизайнере форм или вручную добавили в коде?

Mihonius

В дизайнере форм! Приложил архив, вся программа.

Выше выделил лишние, но учебник Вам рекомендую полистать.
procedure TForm1.FormCreate(Sender: TObject);
begin
sg1 - здесь он ещё равен nil
sg1.Cells[0,0]:='Коорд. X';
sg1.Cells[1,0]:='Коорд. Y';
sg1.Cells[2,0]:='Радиус R';
sg1.Cells[0,1]:='100';
sg1.Cells[1,1]:='100';
sg1.Cells[0,2]:='300';
sg1.Cells[1,2]:='300';
sg1.Cells[0,3]:='500';
sg1.Cells[1,3]:='500';
end;


Mihonius

Хз, не выходит ничего, или SG1 равен nil или таблица пустая при проверке!
В книжках все просто в formshow или formcreate записывают значения, в теле программы работаю, циклом перебирают, очищают и прочее..
понять не могу почему не работает в моем случаи???

Всё работает.
+ Благодарностей: 1

Mihonius

Спасибо огромное! А почему обращение к ячейке в таком виде Form1.SG1.Cells[0, i], таблица же находится на той же форме?

Потому, что procedure DrawKK; к объекту формы не относится.
+ Благодарностей: 1

Николай

А эти вопросы точно помогают сделать "свой САПР на базе КОМПАС"?

Mihonius

Добрый день! Чертеж отстроен. По чертежу создана заготовка, по тому же принципу. Все более менее адекватно работает. Есть еще пара вопросов:
1) как лучше организовать работу с чертежем детали и заготовки, пока сделал отдельный KGAX, может лучше в одном фрагменте создать разные слои.
2) Как по Вашему лучше реализовывать создание чпу программы, как я это вижу: есть список инструментов, кликом мышки выбираем нужный инструмент и выделяем те элементы которые им обрабатываются, подверждаем выбор и переходим к следующему.
3) для создания кода чпу необходимо будет вытягивать параметры выделенных объектов?
4) как организовуеться вывод сгенерированного кода в текстовый редактор, простым выводом в файл?

Mihonius

Цитата: Николай от 04.04.13, 16:43:37
А эти вопросы точно помогают сделать "свой САПР на базе КОМПАС"?
Вопросы возникают в процессе создания, а так как работа с апи компас в первые и опыт программирования на делфи маленький осваиваюсь по мере необходимости. Хорощо что есть еще добрые, знающие люди, спасибо Вам!

Зачем второй KGAX?
У компонента KGAX есть свойства и методы для управления документами, слои не нужны, достаточно динамически управлять временной группой объектов, актуальной для текущего состояния интерфейса Вашей программы, если Вы поменяете какой либо размер, то всё остальные слои станут неактуальными со старым значением.
P.S. Всё остальное к API Компаса не относится, а начать нужно с технологии.

Администратор

Прошу создавать для разнородных вопросов отдельные темы с информативными названиями.

Данную тему закрываю, т.к. её неинформативное название провоцирует сваливать в одну кучу много не относящихся друг к другу вопросов.
+ Благодарностей: 1