Симметрия

Автор Николай, 31.07.17, 16:18:09

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

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

Николай

Решил вместо тупого построения симметричных деталей делать "симметрию". При переводе текста из Делфи в VB 6 пошли ругачки VB на строки программы. Кто владеет информацией- подскажите, как правильно?

Sabahs

Я, что то этой строки не пойму ksDocument2D = ksSymmetryObj, может так -
ksDocument2D.ksSymmetryObj.

Николай

Исправил, но ругается на вторую строку: ошибка "6" переполнение (Overflow).
Без этой строки отрезки строит, но, конечно, группу не образует

Sabahs

Попробуйте пример Step3, проработать там работа с группой есть, т.к. по синтаксису, всё верно.
У меня VB не стоит и я на нём не работаю, т.ч. не подскажу, т.к. нюансов VB не знаю.

KrissKross

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

Цитата из справки по функции ksDocument2D::ksNewGroup

long ksNewGroup (short type);

Входной параметр:

type - тип группы:
0 - модельная,
1 - временная.


Примечание:
type=0 - модельная, - В модельной группе лежат объекты, которые уже созданы в документе.
type=1 -Во временной группе могут лежать временные и существующие объекты

KrissKross

Странно во всех примерах
указано
ksNewGroup (0);
создаются объекты
и все работает

Sabahs

Вот на картинке два примера VB и Delphi, последний 100% рабочий.

Николай

Да, пример Step3 помог.
Вот что вымучилось: :)

Dim gr As Long
    gr = ksDocument2D.ksNewGroup(0)
     ksDocument2D.ksLineSeg 20, 10, 20, 30, 1
     ksDocument2D.ksLineSeg 20, 30, 40, 30, 1
      ksDocument2D.ksLineSeg 40, 30, 40, 10, 1
      ksDocument2D.ksLineSeg 40, 10, 20, 10, 1
   ksDocument2D.ksEndGroup
   ksDocument2D.ksSymmetryObj gr, 0, 0, 100, 0, 1

Странно, что группа не может быть "integer" . Получилось только с  "Long"