Исходники, описания, примеры

Автор olden, 12.10.06, 07:35:42

« предыдущая - следующая »

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

yarikv

примеры использования функции UserGetPlacementAndEntity:
1. Выбор цилиндрической поверхности и плоской.
2. Выбор двух цилиндрических поверхностей.

Death

Финальная версия библиотеки, генерирующей команды ЧПУ. Генерирует команды как для ЧПУ, так и для машины плазменной резки типа "Портал". В проекте присутствуют все файлы, необходимые для успешной компиляции. Это даже не пример, а готовая программа! Кроме того, архив содержит краткую справку, которая поможет быстро разобраться во всех функциях библиотеки. Разработано на Visual C++ 8.0 для КОМПАС V7. Не пропустите!

yarikv

27.09.07, 17:01:09 #42 Последнее редактирование: 28.09.07, 09:25:12 от yarikv
Пример построения операции по сечениям с указанием направления в виде цилиндрической спирали. Делфи7. Компас 9

olden

Пример типа Дерево модели. Если че пишите на личку будем исправлять. Компас 9SP1

Judzhin

30.10.07, 09:21:16 #44 Последнее редактирование: 02.11.07, 12:55:46 от Judzhin
Две библиотеки для Компас-Макро. Одна скрывает начала координат и координатные плоскости текущей сборки и всех входящих деталей/подсборок. Вторая показывает.
2.11.07 Для ускорения работы отключена обработка стандартных компонентов. Добавлены два макроса для обработки только деталей/подсборок первого уровня.

sorockinalex

Друзья! Кто-нибудь помогите! Напишите как мне пошагово настроить Delphi7 для создания библиотек и приложений. Открываю файл примера step1, нажимаю F9, но он не компилируется - вылетает с ошибкой...

Lito 2

Цитата: sorockinalex от 15.11.07, 11:26:13
Друзья! Кто-нибудь помогите! Напишите как мне пошагово настроить Delphi7 для создания библиотек и приложений. Открываю файл примера step1, нажимаю F9, но он не компилируется - вылетает с ошибкой...

Это конечно не та ветка, но все же отвечу.
Смотри документ "Компиляция библиотек под К9.doc"
"Delphi Automation
1.   Подключите новую библиотеку (файл с расширением tlb). Для этого выполните следующее.
1.1.   Вызовите команду Project - Import type library - Add.
1.2.   Выберите файл kAPI5.tlb.
2.   Укажите путь к корневой папке размещения примеров (Unit dir name).
3.   Нажмите кнопку Create Unit.
4.   Переименуйте полученный файл в KsTLB.pas и отредактируйте его первую строку."
:w:

sorockinalex

Друзья! Помогите пожалуйста! Поситал файлик sdk.hlp но ничего не понял как сделать библиотеку. Загрузил файл примеры step1, нажал f9, но он не компилируется - вылетает с ошибкой. Читал ещё какой-то файл "компиляция под компас 9", не понял. Поэтому прошу помощи у Вас. Напишите по пунктам что нужно сделать, чтобы настроить delphi 7 для создания библиотек и приложений компас. От самого начала и до компиляции простейшей библиотеки step1. Очень нужна ваша помощь! Замучался уже!

sorockinalex

Разобрался! Скачал файл 3 метра с pdf файлами.
Не знаю почему компас не включает их в свой дистрибутив... :%:

Но есть проблемка:
1) Делаю всё по примеру. Создал каталог C:\RTWExamples\Example1
В нём лежат все файлы pas и dcu (из папки include SDK), там же сохранён мой проект библиотеки.
2) код программы:

PROJECT1.dpr
library Project1;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }



{$R 'Example1.res' 'Example1.rc'}

uses
  SysUtils,
  Classes,
  Windows,
  LDefin2D,
  ksAuto,
  KsTLB,
  command in 'command.pas';

{$E rtw}

{$R *.res}
  var iKompas : KompasObject;

  function LibraryName: PChar; pascal;
begin
result := 'Библиотека Example1 на Delphi';
end;

function LibraryID: UINT; pascal;
begin
result := LIB_ID;
end;

procedure LibraryEntry (command: WORD); pascal;
begin
iKompas := KompasObject(CreateKompasObject);
if iKompas <> nil then
Exit;

case command of
1 : iKompas.ksMessage ( 'Болт 7798' );
2 : iKompas.ksMessage ( 'Шайба 18123' );
3 : iKompas.ksMessage ( 'Гайка 6393' );
4 : iKompas.ksMessage ( 'Гайка 5915' );
5 : iKompas.ksMessage ( 'Гайка 15521' );
6 : iKompas.ksMessage ( 'Штифт 10774' );
end;

iKompas.ksMessage('ПРИВЕТ!!!');
iKompas := nil;
end;

exports
LibraryName name 'LIBRARYNAME',
LibraryEntry name 'LIBRARYENTRY';

begin
end.


COMMAND.rh

#ifndef __COMMAND_RH
#  define __COMMAND_RH

#define LIB_ID    1000
#define COMMAND_1 1
#define COMMAND_2 2
#define COMMAND_3 3
#define COMMAND_4 4
#define COMMAND_5 5
#define COMMAND_6 6

#endif



EXAMPLE1.rc
#ifndef __COMMAND_RH
#include "command.rh"
#endif

// Описание меню команд библиотеки
// Примечание: идентификаторы команд должны быть в интервале от 1 до 900
1000 MENU
{
MENUITEM "Болт ГОСТ 7798-70", COMMAND_1
MENUITEM "Болт ГОСТ 18123-72", COMMAND_2
POPUP "ГАЙКИ"
{
MENUITEM "Гайка ГОСТ 6393-73", COMMAND_3
POPUP "ГАЙКИ ШЕСТИГРАННЫЕ"
{
MENUITEM "Гайка ГОСТ 5915-70", COMMAND_4
MENUITEM "Гайка ГОСТ 15521-50", COMMAND_5
}
}
MENUITEM "Штифт ГОСТ 10774-80", COMMAND_6
}

//Определение BMP-слайдов для команд библиотеки
COMMAND_1 BITMAP "1.bmp"
COMMAND_2 BITMAP "2.bmp"
COMMAND_3 BITMAP "3.bmp"
COMMAND_4 BITMAP "4.bmp"
COMMAND_5 BITMAP "5.bmp"
COMMAND_6 BITMAP "6.bmp"

//Размеры окна вывода BMP-слайда:
1000 RCDATA {
160 // Размер по горизонтали
140 // Размер по вертикали
}

// Имя библиотеки
STRINGTABLE
{
1000 "Библиотека Example1 на Delphi"
}

// Пиктограмма для свёрнутого окна библиотеки
1000 ICON "Example1.ico"



COMMAND.pas
unit command;

interface

const LIB_ID    = 1000;
COMMAND_1 = 1;
COMMAND_2 = 2;
COMMAND_3 = 3;
COMMAND_4 = 4;
COMMAND_5 = 5;
COMMAND_6 = 6;
implementation

end.




При компиляции выдаёт такую ошибку:
[Warning] Project1.dpr(28): Symbol 'KompasObject' is specific to a platform
[Warning] Project1.dpr(42): Symbol 'KompasObject' is specific to a platform

строка 28: var iKompas : KompasObject;
строка 42: iKompas := KompasObject(CreateKompasObject);

научите, пожалуйста! что мне нужно сделать, чтобы этих ошибок не выдавалось?

sorockinalex

ЦитироватьЭто конечно не та ветка, но все же отвечу.
Смотри документ "Компиляция библиотек под К9.doc"
"Delphi Automation
1.   Подключите новую библиотеку (файл с расширением tlb). Для этого выполните следующее.
1.1.   Вызовите команду Project - Import type library - Add.
1.2.   Выберите файл kAPI5.tlb.
2.   Укажите путь к корневой папке размещения примеров (Unit dir name).
3.   Нажмите кнопку Create Unit.
4.   Переименуйте полученный файл в KsTLB.pas и отредактируйте его первую строку."
Work


А это вообще не знаю к чему. Сделал как было в KDMA_02.pdf и ничего из перечисленного выше не делал.. Простейшая библиотека работала. А когда дальше пошёл - начал выдавать описанную ошибку...

sorockinalex

Сейчас нашёл в яндексе. Оказывается, это просто предупреждение о возможном несоответствии на другой платворме или типа того.
Библиотека в компасе загружается, но пунктов никаких почему-то нет... И картинок подгруженных тоже! Картинки и иконка лежат тоже в папке Example1... Помогите, друзья!!!

Николай

Уважаемый  sorockinalex!
Вы вчера скачали где-то "3 метра с pdf с файлами" по по созданию библиотек. Не могли бы скинуть ссылку на эти материалы?

sorockinalex

Блин. Я и не помню уже... Попробуйте поискать в Download секции - тут вверху окна ссылка


yarikv

Пример заполнения основной надписи чертежа
Делфи 7

yarikv

Пример считывания данных с основной надписи чертежа с указанием номера ячейки
Делфи 7

yarikv

Пример вставки стандартной детали из библиотеки моделей в сборку с указанием местоположения и присвоением переменных. Делфи 7. Компас 9

Sheiker

Пример из книги Максима Кидрука:
Мини-САПР, создающая по минимальному количеству исходных данных 3D-модель зубчатого колеса (как прямозубого, так и косозубого).

Sheiker

Ребят, а подскажите как создать подсборку в сборке  ??

sulyco

создаете отдельную сборку-вставляете ее в другую сборку и она становится подсборкой. Если надо сделать из текущей - пересохраняете имеющуюся с именем подсборки - удаляете лишние детали. В головной сборке удаляете детали подсборки и вставляеете туда подсборку.
Ну как-то так.