Help me

Автор Elbran, 12.04.04, 09:46:53

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

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

Elbran

Народ. Помогите пожалуйста. Мне необходимо в документе перебрать все отрезки и получить координаты их концов. Перебор то осуществить как я нашел (пример Step7 – хождение по виду), отрезок подсвечивается, координаты то как взять? Добавьте строчки, чтобы в окне сообщений координаты показывались.

Dim iKompasObject As Object ’KompasObject
Dim iDocument2D As Object ’ksDocument2D
Dim iMathematic2D As Object ’ksMathematic2D
Dim doc As Object ’ksDocument2D

Public Function GetLibraryName() As String
  GetLibraryName = "Пример"
End Function

Sub WalkFromView(doc As Object) ’
  Dim obj As Long
  Dim count As Integer
  count = 0
  Dim iIter As Object ’ ksIterator
  Set iIter = iKompasObject.GetIterator
  iIter.ksCreateIterator ALL_OBJ, 0
  If iIter.reference Then
    obj = iIter.ksMoveIterator("F")
    If doc.ksExistObj(obj) Then
      Do
        doc.ksLightObj obj, 1
        count = count + 1
        iKompasObject.ksMessage "номер = " & count
        doc.ksLightObj obj, 0
        obj = iIter.ksMoveIterator("N")
      Loop Until doc.ksExistObj(obj) = 0
    End If
  End If
End Sub

Public Sub ExternalRunCommand(ByVal command As Integer, ByVal mode As Integer, ByVal Kompas As Object)
  Set iKompasObject = Kompas
    If iKompasObject Is Nothing Then
    Exit Sub
  End If
    Dim doc As Object ’ksDocument2D
  Set doc = iKompasObject.Document2D
  If doc Is Nothing Then
    Exit Sub
  End If
    Dim iDocument2D As Object ’ksDocument2D
  Set iDocument2D = iKompasObject.ActiveDocument2D
    If iDocument2D Is Nothing Then
    Exit Sub
  End If
         WalkFromView iDocument2D          
End Sub

www

Получил указатель на объект и дальше получай его свойства.
функция GetObjParam
Пример:
void GetObjParam_Example(void)  {


char buf [128];
   reference p;
   LineSegParam par;
   int t;
   Mtr( 30, 20, 45, 1 );
   p = LineSeg( 0, 0, 30, 0, 1 );

   /* взять параметры отрезка */

   t = GetObjParam( p, &par, sizeof(par), ALLPARAM );
   sprintf( buf, " t=%d, x1=%4.1f y1=%4.1f x2=%4.1f y2=%4.1f tl=%d",t,
                                par.x1, par.y1 ,par.x2, par.y2 , par.style);
   Message(buf);

   /* заменить параметры отрезка */
   par.x2 = 0;  par.y2 = 40;   par.style = 2;

   if( SetObjParam( p, &par, sizeof(par), ALLPARAM ) )

Message(" Изменили объект");
   else    MessageBoxResult();

   DeleteMtr();

} /* _Example */


Elbran

Не понял. Тут объект p создается со всеми с указателем на него. В примерах это видел. В моем случае не пойму как GetObjectParam использовать. У тебя аськи нету случаем. Не напишешь мне, мой номер 338814942

Georg

У тебя в примере сверху перемнная obj и есть указатель на объет, вот и используй его

Elbran

Научился вчера.
Оказывается, чтобы взять параметры, нужно проверить, получил-ли я их. Не пойму - это и так очевидно