Перейти к публикации

AutoLisp. Связь внешней базы данных с объектами чертежа.


Рекомендованные сообщения

Вопрос к знатокам:

Очень хочу научиться связывать объекты в чертежах с внешними базами данных (например SQL).

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

Сразу скажу - что я полный профан. Если Лисп худо-бедно знаю (на уровне начинающего, то есть только начал работать с activeX)..то с базами данных у меня вообще еще ничего не было.

Заранее спасибо!

Ссылка на сообщение
Поделиться на других сайтах


Вопрос к знатокам:

Очень хочу научиться связывать объекты в чертежах с внешними базами данных (например SQL).

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

Сразу скажу - что я полный профан. Если Лисп худо-бедно знаю (на уровне начинающего, то есть только начал работать с activeX)..то с базами данных у меня вообще еще ничего не было.

Заранее спасибо!

Вы имеете ввиду AutoLISP для AutoCAD`a ?

Я на нем писал программки в течение лет 8...9.

ИМХО скорее всего решение Вашего вопроса будет очень трудным, если вообще возможным.

Лучше освоить для начала VisualBasic 6.0 - вот там это возможно. VB6 - довольно простой язык и его можно освоить недели за 2-3 (не полностью конечно). Но там есть и интерфес с БД и окна(формы Windows) и др.

Потом можно перейти и на другие языки, которые поддерживаются в AutoCAD`a.

Ссылка на сообщение
Поделиться на других сайтах

Вы имеете ввиду AutoLISP для AutoCAD`a ?

Я на нем писал программки в течение лет 8...9.

ИМХО скорее всего решение Вашего вопроса будет очень трудным, если вообще возможным.

Лучше освоить для начала VisualBasic 6.0 - вот там это возможно. VB6 - довольно простой язык и его можно освоить недели за 2-3 (не полностью конечно). Но там есть и интерфес с БД и окна(формы Windows) и др.

Потом можно перейти и на другие языки, которые поддерживаются в AutoCAD`a.

Да, я имел в виду AutoLisp. То, что это возможно - я точно знаю (из обрывочных фран найденых о запросам в инете, и возможностях КадМеха, который написан на АвтоЛиспе). А мое нежелание переходить на VBA объясняется тем, что сторонние программы работают гораздо медленее, чем функции на лиспе. Ведь этот язык встроен в автокад. Это я даже проверял опытным путем.
Ссылка на сообщение
Поделиться на других сайтах

Да, я имел в виду AutoLisp. То, что это возможно - я точно знаю (из обрывочных фран найденых о запросам в инете, и возможностях КадМеха, который написан на АвтоЛиспе). А мое нежелание переходить на VBA объясняется тем, что сторонние программы работают гораздо медленее, чем функции на лиспе. Ведь этот язык встроен в автокад. Это я даже проверял опытным путем.

Ну сейчас и VBA также встроен в ACAD как и AutoLisp, просто Lisp - это изначально язык-интерпретатор, а интерпретаторы никак не могут работать быстрее чем компилируемые языки.

Ну это так, к слову...

А вообще-то я говорил про VB6 а не VBA... т.е. я получал *.ЕХЕ - файл.

Примерно год назад делал программку на VB6 : через нее я управлял запуском, получением/передачи некоторых данных между AutoCAD, SolidWorks и CorelDraw, а также выполнением нужных мне комманд в любой из этих программ и переключением между ними.

Разве на AutoLisp-e такое возможно?

Вот как на Lisp`e решить вашу задачу, я не знаю... Так что, ничем помочь не смогу :no:

Ссылка на сообщение
Поделиться на других сайтах

Ну сейчас и VBA также встроен в ACAD как и AutoLisp, просто Lisp - это изначально язык-интерпретатор, а интерпретаторы никак не могут работать быстрее чем компилируемые языки.

Ну это так, к слову...

А вообще-то я говорил про VB6 а не VBA... т.е. я получал *.ЕХЕ - файл.

Примерно год назад делал программку на VB6 : через нее я управлял запуском, получением/передачи некоторых данных между AutoCAD, SolidWorks и CorelDraw, а также выполнением нужных мне комманд в любой из этих программ и переключением между ними.

Разве на AutoLisp-e такое возможно?

Вот как на Lisp`e решить вашу задачу, я не знаю... Так что, ничем помочь не смогу :no:

На лиспе такое не возможно. Дело в том, что любая функция на лиспе запущеная в одном документе, не может переключаться в даже дуругой документ этой же программы, не говоря уже об остальных..(Хотя мои сведения могут быть устаревшими). Но получать или передавать данные - это запросто.

Честно говоря, я не знаю что значит "интерпретатор" "компилятор" и не могу оперировать этими понятиями, но то что я говорил вам - правда. Какое-то время назад я написал одинаковую функцию для 2006 механикла на лиспе и на (Правда не VB6, а на) делфи. Функция состояла в том, чтобы найти все сварочные швы, и составить таблицу. Для примера был выбран сборочный чертеж вагона (27 листов формата А1). Если функция на лиспе сделала это за пять секунд, то на делфи программа работала порядка 40 минут. С тех пор я прекратил подобные эксперементы. И честно говоря мне просто логически не понять, как может сторонняя программа (EXE-фаил), работать быстрее уже встроенной в документ функции, написаной на языке, специально написанный под автокад, а следоватьльно прекрассно понимающий все объекты чертежа, видимые и нет, и имеющий в своем содержании простейшие фунции, разработанные для вычисления геометрии.

И даже если я не прав, и VB6 работает быстрее, у меня все равно не будет возможности его использовать. Дело в том, что нужная программа пишется, дря конторы, в которой установлено лицензионное, но увы дешевое ПО. То есть это даже не Автокад.. А его жалкий клон - ZWCad. В котором даже АвтоЛисп жутко обрезаный.

Ссылка на сообщение
Поделиться на других сайтах

Вот может это пригодится :

<noindex>http://forum.dwg.ru/showthread.php?t=27895&page=2</noindex>

<noindex>http://yandex.ru/yandsearch?text=autolisp+...=213&lr=213</noindex>

(хотя я особо не вчитывался, да и последнюю программу на Lisp-e я писал лет 14 назад...)

Вы вообще-то поиск делали глобальный по Инету, по фразам типа: "Autolisp и SQL", "AutoCAD API"... ?

<noindex>http://yandex.ru/yandsearch?text=autolisp+...+sql&lr=213</noindex>

Еще:

Расширения ActiveX для AutoLISP

"...

Расширения ActiveX значительно увеличивают функциональность AutoLISP, добавляют возможность работы с файлами, реестром и возможность связи с другими приложениями. Дополнительные расширения работают напрямую с объектной моделью AutoCAD посредством функций ActiveX. Впервые технология ActiveX была внедрена в AutoCAD R14.

...

"

(Остальное тут: <noindex>http://ru.wikipedia.org/wiki/AutoCAD)</noindex>

Насчет "Компиляторов и интерпретаторов" можно глянуть тут:

<noindex>http://www.osp.ru/cw/2001/06/9339/</noindex>

Ссылка на сообщение
Поделиться на других сайтах

Вот может это пригодится :

<noindex>http://forum.dwg.ru/showthread.php?t=27895&page=2</noindex>

<noindex>http://yandex.ru/yandsearch?text=autolisp+...=213&lr=213</noindex>

(хотя я особо не вчитывался, да и последнюю программу на Lisp-e я писал лет 14 назад...)

Вы вообще-то поиск делали глобальный по Инету, по фразам типа: "Autolisp и SQL", "AutoCAD API"... ?

<noindex>http://yandex.ru/yandsearch?text=autolisp+...+sql&lr=213</noindex>

Еще:

Расширения ActiveX для AutoLISP

"...

Расширения ActiveX значительно увеличивают функциональность AutoLISP, добавляют возможность работы с файлами, реестром и возможность связи с другими приложениями. Дополнительные расширения работают напрямую с объектной моделью AutoCAD посредством функций ActiveX. Впервые технология ActiveX была внедрена в AutoCAD R14.

...

"

(Остальное тут: <noindex>http://ru.wikipedia.org/wiki/AutoCAD)</noindex>

Насчет "Компиляторов и интерпретаторов" можно глянуть тут:

<noindex>http://www.osp.ru/cw/2001/06/9339/</noindex>

Спасибо большое... Действительно узнал много нового, и если бы не этот дурацкий софт ZWCad, то должно было помочь..

Я уже теряю надежду, что это вообще возможно..

Ссылка на сообщение
Поделиться на других сайтах

У Вас какая версия ZWCad-а?

В ZWCad 2010-м это возможно вполне. А в ZWCad 2011 - там еще и `С++` добавлен в API.

PS. посмотрите в папке, где установлен ваш ZWCad, есть ли там файлы типа *.tlb ?

В справке ZWCad про API что-нибудь упоминается?

Ссылка на сообщение
Поделиться на других сайтах

У Вас какая версия ZWCad-а?

В ZWCad 2010-м это возможно вполне. А в ZWCad 2011 - там еще и `С++` добавлен в API.

PS. посмотрите в папке, где установлен ваш ZWCad, есть ли там файлы типа *.tlb ?

В справке ZWCad про API что-нибудь упоминается?

Версия 2009.07.30..

В справке нарыл что-то про VBA(тут все по английски, а у меня с этим жуткие проблемы). Но Судя по всему все-таки присутствует. Про С++ ничего не нашел.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • Denis_12
      Вот это помогло! Большое спасибо))) А я то все пытался через сборку это реализовать)  А Вы случайно не знаете как размеры в эскизе зафиксировать? Я имею ввиду при отдалении чертежа размеры стрелок и шрифтов увеличивается и происходит наслоение размеров друг на друга
    • ID_Hacker
      Для этого есть отдельная зона промышленной подсети. Если не лезть в настройки системной подсети ничего не завалится.   Сеть то грохнуть могли как на NCU так и на PCU50 и подходы к решению проблемы будут разные.
    • Artas28
      Добрый день! Есть какие ни будь рекомендации, на какую длину  нужно зажимать хвостовик в  термопатроне? Есть фреза д6, L50. Могу ли я зажать её за 15мм, или это будет мало? Или нужно зажимать  как минимум за  3 диаметра?
    • Ветерок
      Не понял что это за процедура такая "перенос в 2D".   Наверное, скрывать объекты на том или ином виде надо на соответствующем виде чертежа, а не в сборке. Или создать в сборке соответствующую конфигурацию и отображать на чертеже её.
    • Viktor2004
    • Denis_12
      Доброго времени суток! Ребят, ни как не могу решить проблему авто-обновления чертежного вида 3D сборки, к примеру скрываешь все кроме основания каркаса сборки, переносишь это в 2D (чертежный вид) указываешь размеры и т.п. (ставишь галочки "исключить из авто-обновления") после чего начинаешь в 3D сборке показывать дополнительно стойки (для создания нового вида), и вот в ранее созданном виде даже с отключенным авто-обновлением они тоже начинают проявляться. Как решить эту проблему? Нужно зафиксировать вид, чтобы он не обновлялся без моего участия. SolidWorks 2022 года.
    • Зинаида
      Возможно Вы смотрите не в той перспективе. Проверьте в перспективе "Мой Teamcenter" стоя на ревизии объекта. Возможно Вы смотрите не в той перспективе. Проверьте в перспективе "Мой Teamcenter" стоя на ревизии объекта.
    • alek77
      Да, спасибо, я уже из интереса ее нашел. Еще раз повторю, чтобы не выхватить, сам я такими методами указния размеров не пользуюсь, это самая вредная практика из всех, что встречал. В свое время имел много проблем в автокаде, корректируя чужие чертежи. Но там и отртогональные линии под углом в 0,001 градуса были в норме, и миллион линий одна поверх другой, и незамкнутые отрезки и много всего, от чего волосы дыбом. В солиде, думал, не столкнусь с таким, наивный. Поэтому искал и нашел макрос который косяки размеров подсвечивает. Он вполне рабочий, но не стабильный. В чем причина не разбирался, так как со своей задачей он справляется. Причем отрабатывает и галочки, и замену текста в размере. Хорошо, что @malvi.dp нашел время и что-то корректирует, спасибо отдельное ему за это. Макрос достаточно полезный при работе с чужими документами. И если удастся сохранить все начальные функции этого макроса против изощренных методов вредительства - будет офигенно.
    • Kelny
      Если этой ссылки достаточно для отображения материала и материал уже есть в обозначенной модели, то возможно подойдёт TabBuilder: https://help.solidworks.com/2023/russian/SolidWorks/SWHelp_List.html?id=e68c1877b4fa431483f8c751bd9fcc78&_gl=1*lby1j3*_up*MQ..*_ga*NTEyNjA5NDQ3LjE3MTQxMTU3MzA.*_ga_XQJPQWHZHH*MTcxNDExNTcyOS4xLjEuMTcxNDExNTczNy4wLjAuMA..#Pg0   В старых версиях при написанни ссылок такого радо в некоторых случаях можно было не писать имя файла, а достаточно было вместо имени файла модели оставить ПРОБЕЛ.SLDPRT и имя после этого подставлялось само. Пробовать надо.   Так же можете глянуть макрос по изменению свойств файла (методы и функции там устаревшие, но возможно даже будет работать и можно поковыряться в коде): https://kelnyproject.ucoz.ru/load/6-1-0-8 по програмированию так же есть справка (версию в ссылке поменяйте на свою, что бы справка была актуальна для вашей версии): https://help.solidworks.com/SearchEx.aspx?query=get custom property&version=2010&lang=english,enu&prod=api
    • gudstartup
      только перед обновлением обязательно выполните  все что написано в руководстве и касается сохранения состояния станка и чпу. и обязательно сделайте образ диска и помните что слишком новые версии могут не заработать на вашем чпу относительно безопасно ставить только сервиспаки
×
×
  • Создать...