bad declare - но подскажите как надо??? Что я не так делаю?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
coolged
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 22.12.2004 (Ср) 21:42

bad declare - но подскажите как надо??? Что я не так делаю?

Сообщение coolged » 24.06.2005 (Пт) 16:04

Есть текст:

Option Explicit

Public Type TSketchSgInFo
sSg_Id As String
dSg_Ln As Double
End Type 'TSketchSgInFo

Const sSketchName As String = "skMarker"

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swFeat As SldWorks.feature
Dim swSketch As SldWorks.sketch
Dim swSelMgr As SldWorks.SelectionMgr
Dim swSketchSeg As SldWorks.SketchSegment
Dim pSketchSegRelMgr As SldWorks.SketchRelationManager
Dim vSketchSegRel As Variant 'Array of sketch segment relation
Dim vSketchSeg As Variant 'Array of sketch segment
Dim boolstatus As Boolean
Dim lSegCnt As Long
Dim lRelCnt As Long
Public clSkSegInFo As New Collection
Public mySgInFo As TSketchSgInFo



Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
swModel.ClearSelection2 True
boolstatus = swModel.Extension.SelectByID(sSketchName, "SKETCH", 0, 0, 0, True, 0, Nothing)
If boolstatus Then
Set swSelMgr = swModel.SelectionManager
Set swFeat = swSelMgr.GetSelectedObject5(1)
Set swSketch = swFeat.GetSpecificFeature2

swModel.ClearSelection2 True
vSketchSeg = swSketch.GetSketchSegments
For lSegCnt = 0 To UBound(vSketchSeg)
Set swSketchSeg = vSketchSeg(lSegCnt)
'Ignore construction lines
If swSketchSeg.ConstructionGeometry = False Then
'Select only sketch lines
If swSketchLINE = swSketchSeg.GetType Then
swSketchSeg.Select4 True, Nothing
Set pSketchSegRelMgr = swSketchSeg.GetSketch.RelationManager
vSketchSegRel = pSketchSegRelMgr.GetRelations(swSelectedEntities)
For lRelCnt = 0 To UBound(vSketchSegRel)

Select Case vSketchSegRel(lRelCnt).GetRelationType
Case swConstraintType_VERTICAL
mySgInFo.sSg_Id = "Line" + Str$(swSketchSeg.GetId(1)) + "@" + sSketchName
mySgInFo.dSg_Ln = swSketchSeg.GetLength
clSkSegInFo.Add mySgInFo
Case swConstraintType_HORIZONTAL: Exit For
End Select 'swConstraintType_VERTICAL

Next lRelCnt
swModel.ClearSelection2 True
End If 'swSketchLINE
End If 'Not ConstructionGeometry
Next lSegCnt

Else
MsgBox ("NOT selected")
Exit Sub
End If
End Sub

при F5 говорит: Only public user defined types defined in public object modules can be used as parameters or return types for public procedures of class modules or as fields of public user defined types

ругается на место: clSkSegInFo.Add mySgInFo

Что я не так делаю - подскажите please ......

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 24.06.2005 (Пт) 16:05

Тебе перевести текст ошибки? Там вообще-то английским по белому все объясняется.

coolged
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 22.12.2004 (Ср) 21:42

Сообщение coolged » 24.06.2005 (Пт) 16:07

Ennor писал(а):Тебе перевести текст ошибки? Там вообще-то английским по белому все объясняется.


Усли можно - подсажите please как должно быть корректно ......

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 24.06.2005 (Пт) 16:11

кароче нельзя в обычных проектах экспортировать структуры из классов, тем более использовать как параметры или возвращать их как результаты.
ХЎ

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.06.2005 (Пт) 16:12

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

coolged
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 22.12.2004 (Ср) 21:42

Сообщение coolged » 24.06.2005 (Пт) 16:27

Пасиба всем за участие. Но вот я тут о чем - это простая замена массиву для сохранения ID эл-ов эскиза и длин этих эл-ов......
Скажите - без модулей и прочего - не как да ????


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 174

    TopList