Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft Access |
![]() ![]() |
Pashik1 Member Откуда: Украина, Кировоград Сообщений: 286 |
Добрый день. В программе SolidWorks создются 3Д модели деталей. Модель имеет дерево построения (ниже приерпил изображение, как выглядит). Необходимо из файла 3Д модели (.SLDASM) импортировать список деталей и их иерархию в таблицу Access. Чесно говоря - даже не знаю с чего начать и где рыть. К сожалению мои познания не так глубоки. Подскажите пожалуйста, в каком направлении хоть двигаться. |
28 янв 13, 13:16 [13838744] Ответить | Цитировать Сообщить модератору |
Pashik1 Member Откуда: Украина, Кировоград Сообщений: 286 |
К сообщению приложен файл. Размер - 103Kb |
28 янв 13, 13:20 [13838787] Ответить | Цитировать Сообщить модератору |
qwerty112
Guest |
Pashik1, пример содержимого файла покажите, а лучше - выложите |
28 янв 13, 13:22 [13838808] Ответить | Цитировать Сообщить модератору |
Pashik1 Member Откуда: Украина, Кировоград Сообщений: 286 |
qwerty112, http://rusfolder.com/images/download_1.jpg |
28 янв 13, 13:28 [13838852] Ответить | Цитировать Сообщить модератору |
Pashik1 Member Откуда: Украина, Кировоград Сообщений: 286 |
qwerty112, Сорри. ссылку не верная. Вот правильно http://rusfolder.com/34725085 |
28 янв 13, 13:29 [13838862] Ответить | Цитировать Сообщить модератору |
qwerty112
Guest |
ну, файл, ваще-то - бинарный, так, что про "импортировать" - это слишком "смело", а вариант, имхо, один - через com-автоматизацию, открывать файл в этой программе, и уже методами этого приложения - разбирать структуру createobject SolidWorks |
||
28 янв 13, 13:37 [13838936] Ответить | Цитировать Сообщить модератору |
Pashik1 Member Откуда: Украина, Кировоград Сообщений: 286 |
qwerty112, Нашел статью про автокад там, на сколько я понял, вытяшивают какую-то инфу из файла. Может, если подключить какую-то библиотеку солида, получится через нее выдернуть то, что нужно? |
28 янв 13, 13:56 [13839094] Ответить | Цитировать Сообщить модератору |
П-Л
Guest |
Все вопросы именно к этому пакету. У него должна быть объектная модель, позволяющая вам програмно обходить все это дерево и получить информацию по всем его узлам. Как только это получено - дальша все совершенно тривиально. |
28 янв 13, 14:20 [13839263] Ответить | Цитировать Сообщить модератору |
Pashik1 Member Откуда: Украина, Кировоград Сообщений: 286 |
П-Л, Вот. что еще нашел http://streamdown.blogspot.ru/ Думаю, это то, что нужно, но к сожалению, моих знаний не хватает, чтобы разобраться. Можете прокоментаривать и подсказать что/куда/зачем? |
28 янв 13, 14:37 [13839404] Ответить | Цитировать Сообщить модератору |
П-Л
Guest |
Я вбил в гугль "solidworks object model" сразу выскочили прекрасные релевантные ссылки. Не вижу препятствий! |
28 янв 13, 14:50 [13839501] Ответить | Цитировать Сообщить модератору |
Pashik1 Member Откуда: Украина, Кировоград Сообщений: 286 |
П-Л, Ну так я сюда и обратился за помощью т.к. вижу препятствия :( К сожалению мои знания в использовании разных библиотек и APi - стремятся к нулю :( учусь потихоньку. Вот что еще нарыл: (вот здесь https://forum.solidworks.com/message/214279 ) Public Sub GetTree() Set swApp = CreateObject("SldWorks.Application") swApp.Visible = True Set swModel = swApp.ActiveDoc Set activeConfig = swModel.ConfigurationManager.ActiveConfiguration Set rootComp = activeConfig.GetRootComponent3(True) Traverse (rootComp) End Sub Public Sub Traverse(ByVal swComp As Component2) Debug.Print ("Component name: " & swComp.Name2) Dim firstLevelChildrenComps As Object Dim swChildComp As Component2 Set firstLevelChildrenComps = swComp.GetChildren() If Not firstLevelChildrenComps Is Nothing Then For Each swChildComp In firstLevelChildrenComps If Not swChildComp.GetSuppression = swComponentSuppressionState_e.swComponentSuppressed Then Traverse (swChildComp) End If Next End If End Sub но ни чего не могу разобрать :( |
28 янв 13, 15:14 [13839742] Ответить | Цитировать Сообщить модератору |
П-Л
Guest |
Как же вы тогда беретесь делать ? Начинайте по порядку. Создайте объект. Убедитесь, что сервер оле автоматизации правильно отреагировал на вашу команду. Проверьте, что объектная ссылка указывает именно на тот объект, который вам нужен. Пощупайте в окне Watch его коллекции и свойства. Найдите среди них свое дерево. Начинайте потихоньку его обход (начиная с вершины). Ссылку на библотеку можно поставить ? Ранее связываение работает ? Для ниокра более чем пользлительно. |
28 янв 13, 15:52 [13840066] Ответить | Цитировать Сообщить модератору |
Pashik1 Member Откуда: Украина, Кировоград Сообщений: 286 |
П-Л, Можно хоть какой-то пример? А то ваще не врублюсь..... На примере - хоть ориентировочно буду видеть что куда |
28 янв 13, 16:39 [13840479] Ответить | Цитировать Сообщить модератору |
qwerty112
Guest |
у вас, вообще, доступ к этой программе есть ? точку останова на этой строке поставьте Public Sub GetTree() Set swApp = CreateObject("SldWorks.Application") swApp.Visible = True Set swModel = swApp.ActiveDoc Set activeConfig = swModel.ConfigurationManager.ActiveConfiguration Set rootComp = activeConfig.GetRootComponent3(True) Traverse (rootComp) End Sub создаётся объект ? зы и переменные объяви ! |
||
28 янв 13, 16:50 [13840536] Ответить | Цитировать Сообщить модератору |
Pashik1 Member Откуда: Украина, Кировоград Сообщений: 286 |
qwerty112, Я не знаю, что такое точка сотанова и как проверить, создается ли объект :( Поэтому и прошу примерчик - хоть буду видеть что к чему надо. |
28 янв 13, 16:54 [13840549] Ответить | Цитировать Сообщить модератору |
qwerty112
Guest |
ааа ... |
||
28 янв 13, 16:56 [13840564] Ответить | Цитировать Сообщить модератору |
Pashik1 Member Откуда: Украина, Кировоград Сообщений: 286 |
qwerty112, Ну не програмист я и не пишу программу на комерческой основе. Все, что я знаю и умею - ни кто не учил и сам я много книжек не читал - времени нет. Делаю как умею (для себя) т.к. руководство денег не выделяет на програмера. |
28 янв 13, 16:58 [13840573] Ответить | Цитировать Сообщить модератору |
П-Л
Guest |
Взялся за гуж... Примеров не дождетесь - ни у кого такого зверька нету. |
28 янв 13, 18:08 [13840991] Ответить | Цитировать Сообщить модератору |
Панург Member Откуда: настоящему индейцу завсегда везде ништяк Сообщений: 5115 |
Pashik1, Это тебе к тем кто САПР занимается. Может тут чего посоветуют (покрайней мере с объектной моделью им полегче) |
28 янв 13, 18:17 [13841054] Ответить | Цитировать Сообщить модератору |
Pashik1 Member Откуда: Украина, Кировоград Сообщений: 286 |
Панург, Спасибо за переадресацию. Как что-то нарою - здесь выложу |
28 янв 13, 18:23 [13841096] Ответить | Цитировать Сообщить модератору |
Панург Member Откуда: настоящему индейцу завсегда везде ништяк Сообщений: 5115 |
Pashik1, Попробуй копать тут - Traverse FeatureManager Design Tree (VBA) |
29 янв 13, 05:56 [13842384] Ответить | Цитировать Сообщить модератору |
Между сообщениями интервал более 1 года. |
mr.greenXX Member Откуда: Сообщений: 5 |
Может кто нарыл Макрос для выгрузки дерева SW в Access? или подскажите как стартануть? |
26 янв 20, 16:29 [22066758] Ответить | Цитировать Сообщить модератору |
Лапух Member Откуда: Стойбище № 7 Сообщений: 1164 |
Индусы, разработчики и новаторы Аксика , начиная с 2007, наверное и не слышали про дерево, так что смиритесь с кастрированным вариантом. Пользуйте и радуйтесь тем, что осталось. ![]() |
||||
26 янв 20, 17:24 [22066783] Ответить | Цитировать Сообщить модератору |
Панург Member Откуда: настоящему индейцу завсегда везде ништяк Сообщений: 5115 |
mr.greenXX, вышеуказанный пример не подходит 13842384? Ну нет тут пользователей SolidWorks. По крайней мере не откликаются. |
26 янв 20, 18:25 [22066798] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft Access | ![]() |