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

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

 API - это то, что открыли для использования разработчики. Если у вас есть метод SaveAs, то он сработает на всех версиях SW начиная с той с которой его ввели. Если у вас есть метод SaveAs3, то даже применив рефлексию с dynamic, вы его не запустите на SW 2003, так как его физически нет в библиотеках SW. Так же, даже если этот метод где-то у разработчиков и зарыт внутри их библиотек, вы тоже не сможете его запустить пока они не "откроют" вам его через API, так работает программирование и так работают экспортируемые функции.

Если же вы попробуете подключить к проекту библиотеки от SW 2022, а SaveAs3 выполнить под запущенным SW2009, то код просто свалится в этом месте, так как он не найдёт этого метода в библиотеках разработчика. Будет что-то вроде NO_INTERFACE

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


Какое-то странное обсуждение, все говорят об одном и том же: приладить новое в старому можно, но нет гарантии, что все будет работать. Как можно утверждать утверждать обратное, если даже на уровне microsoft вносятся глобальные изменения в основные понятия? Вот, например, зачем потребовалось менять имя окна процесса "Microsoft Excel" на просто "Excel"? О какой преемственности "библиотек" может идти речь в данном случае? 

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, v-david сказал:

Вот, например, зачем потребовалось менять имя окна процесса "Microsoft Excel" на просто "Excel"?

Некоторые окна и этого имени не имеют, но если есть АПИ имя окна процесса вобщем-то ни к чему, т.к. есть вход с парадного входа.

 

1 час назад, v-david сказал:

О какой преемственности "библиотек" может идти речь в данном случае? 

О приемственности может идит речь, когда программа понимает старый код без изменнений на новой версии.

А вот жизнь меняется постоянно, поэтому постоянно требует движения и изменений, что бы не отставать от настоящего, так что всегда надо что-то подправлять, настраивать, ведь всего каких-то несколько лет наза требовалось оптимизировать программу в память размером в 1-2Мбайта, скоростью процессора в несколько тиков в секунду и хранить всё это на жёстком диске в десятки Мегабайт, а сейчас практически неограниченные ресурсы позволяющие програмистам филонить и создавать огромных монстров не заботясь о сохранении ресурсов. Что уж говорить о 8, 16, 32 бытных системых, которые уже по большому счёту для ПК ушли в прошлое и глядишь не загорами системы X128 или вовсе X1024...

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

ну закройте с "парадного входа" все висящие процессы Excel и заодно свое эксельку, не зацепив другие открытые в этом же окне

Ссылка на сообщение
Поделиться на других сайтах
30.05.2022 в 08:09, v-david сказал:

Какое-то странное обсуждение, все говорят об одном и том же: приладить новое в старому можно, но нет гарантии, что все будет работать.

 

Инженера устраивает любое решение, приводящее к положительному результату. )

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, v-david сказал:

ну закройте с "парадного входа" все висящие процессы Excel и заодно свое эксельку, не зацепив другие открытые в этом же окне

Это вопрос или предложение?

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

Не вопрос и не предложение. Столкнулся с этим, когда надо было поработать с окнами процессов в Windows, поднимать, скрывать, перемещать по экранам причем не только "свое" окно, но и ранее открытые. Не скажу, что это очень сложно, но и не пара строк. Не знаю, что вы имеете ввиду под "парадным входом", но что-то этот процесс мало напоминает его, скорее это backdoor в прямом и переносном смысле..

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, v-david сказал:

поднимать, скрывать, перемещать

Всё это WinAPI + всякие running object table. 

Это никак не соотносится с тем, о чём я писал про SW API.

В SW API помеченные obsolete всё равно работают на последних версиях.

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, v-david сказал:

Не знаю, что вы имеете ввиду под "парадным входом", но что-то этот процесс мало напоминает его, скорее это backdoor в прямом и переносном смысле..

Попробуйте пробиться до функционала программы без API и сравните с тем что предоставляет API.

Аналогично без WinAPI потребовалось бы на много больше строк, что бы сделать хоть что-нибудь.

 

3 часа назад, v-david сказал:

Столкнулся с этим, когда надо было поработать с окнами процессов в Windows, поднимать, скрывать, перемещать по экранам причем не только "свое" окно, но и ранее открытые.

Говоирить о некой абстрактной задаче как минимум не конструктивно.

Ведь возможно надо было просто выбрать иной подход для решения задачи, а из-за неоптимального решения, как раз и пришлось использовать WinAPI, а не встроенный API приложения. Так же возможно стоило сообщить разработчикам софта о недостающих функциях и тогда возможно в будущем не пришлось идит в обход и можно было бы всё седать через API программы.

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...
12.07.2022 в 14:31, Vladimiir сказал:

Добрый день, может кто-нибудь подсказать как изменить размер в эскизе в макросе, на C#.

 

В макросе VBA? Наверное, никак.

 

А для C# есть хелп.

 

 

api_help.JPG

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
14.07.2022 в 18:44, brigval сказал:

 

В макросе VBA? Наверное, никак.

 

А для C# есть хелп.

 

 

api_help.JPG

Про справку знаю, но не могу в ней ничего найти, как только не искал.

Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, Vladimiir сказал:

Про справку знаю, но не могу в ней ничего найти, как только не искал.

Так для начала определитесь что и где меняете.

А искать надо по английски:

https://help.solidworks.com/2010/english/api/sldworksapi/change_dimension_example_vb.htm

 

Ссылка на сообщение
Поделиться на других сайтах
26.07.2022 в 23:57, Kelny сказал:

Так для начала определитесь что и где меняете.

А искать надо по английски:

https://help.solidworks.com/2010/english/api/sldworksapi/change_dimension_example_vb.htm

 

для C# во встроенном хелпе тоже есть

 

Скрытый текст

dim.JPG

 

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

День добрый.

Подскажите, есть ли возможность  средствами SW API в WeldSymbol добраться,  (т.е. задать новые значения) до текстовых полей, извлекаемых по методам WeldSymbol.GetTextAtIndex( int index )  (поля из обозначения сварки при установленном стандарте ГОСТ)?

Ну и до кучи, как в WeldSymbol задать другой стиль стрелки выноски ?

Ссылка на сообщение
Поделиться на других сайтах
57 минут назад, nicomed сказал:

День добрый.

Подскажите, есть ли возможность  средствами SW API в WeldSymbol добраться,  (т.е. задать новые значения) до текстовых полей, извлекаемых по методам WeldSymbol.GetTextAtIndex( int index )  (поля из обозначения сварки при установленном стандарте ГОСТ)?

Ну и до кучи, как в WeldSymbol задать другой стиль стрелки выноски ?

У меня не получилось.

Использую символ сварки для склейки и пайки.

Группирую символ сварки с заметкой, что было красиво, и программно текст (номер пункта ТТ) правлю в заметке.

 

Скрытый текст

ппп.JPG

 

Ссылка на сообщение
Поделиться на других сайтах
12.07.2022 в 14:31, Vladimiir сказал:

как изменить размер

Первое, чему стоит научиться, это записывать макросы. Это, конечно, местами бредовая простая штука делает и показывает очевидные вещи. И не надо даже в справке долго искать.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
04.08.2022 в 16:27, nicomed сказал:

Подскажите, есть ли возможность  средствами SW API в WeldSymbol добраться,  (т.е. задать новые значения) до текстовых полей, извлекаемых по методам WeldSymbol.GetTextAtIndex( int index )  (поля из обозначения сварки при установленном стандарте ГОСТ)?

Для символа по ГОСТ доступ к полям не доступен через API. Можно попробовать поковырять через WinAPI.

 

04.08.2022 в 17:40, brigval сказал:

Использую символ сварки для склейки и пайки.

Группирую символ сварки с заметкой, что было красиво, и программно текст (номер пункта ТТ) правлю в заметке.

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

 

Как вариант к заметке дорисовывать эскизы (как бы внутри элемента заметки - API это позволяет), пример:

https://help.solidworks.com/2010/english/api/sldworksapi/create_compound_note_example_vb.htm

но не уверен что можно будет нарисовать эскиз привязанный к направлению линии выноски. Возможно для контроля выноски и положения значка можно втиснуть в файл встроенный макрос, который будет следить за выноской и перерисовывать значок. Из минусов этого метода, что доступ к эскизам заметки только средствами API, но проблем с отображением на других машинах, где нет макроса, вроде быть не должно (ну только что без макроса редактировать/обновлять эскизы в таких заметках не получиться).

 

04.08.2022 в 23:07, streamdown сказал:

Первое, чему стоит научиться, это записывать макросы.

В Solidworks часто в записи бывает мало полезного. А вот уже готовые похожие примеры в справке по API попадаются.

Изменено пользователем Kelny
Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...

Добрый день!

Помогите, пожалуйста, с макросом.

 

Я написала макрос, который экспортирует деталь в dxf с именем файла, формирующимся из исходного имени файла детали и глобальных переменных. И все отлично.

 

Но потом я запустила макрос для детали, у которой нет глобальных переменных и получила имя dxf с глобальными переменными с прошлого запуска!

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

 

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

Даже не понимаю, какой вопрос задать товарищу Гуглу?:worthy:

Ссылка на сообщение
Поделиться на других сайтах
32 минуты назад, OlgaKubrik сказал:

Наверное, можно что-то дописать, чтобы reset автоматически происходил?

Присвойте переменной отвечающей за глобальные переменные в начале макроса NullString или "":

ВашаПеременная = NullString

 

Или используйте условие IF, если глобальные переменные есть, то запись файла такой строкой, а если нет, то другой.

 

Изменено пользователем Kelny
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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



  • Сообщения

    • Snake 60
      Скорее всего исправляли в конкретной сборке, для конкретных тел. Насколько я помню, надо в самом эскизе профиля заполнить свойство Description
    • Snake 60
      Делаете дырку в свае - вставляете в нее трубу и 2 человеко-силы крутят сваю ) Дёшево и сердито и не нужен никакой планетарный редуктор ))
    • gudstartup
      вы всегда ищите свой путь или будете делать то что вам советуют? с самого начала прежде чем приступать к экспериментам вам нужно было вынуть носитель и сделать образ. diskcopy делает копию гибкого диска на другой а вам надо сделать образ жесткого диска или карты памяти. делайте как советует @Viktor2004 иначе еще чего нибудь сломаете или вам станок не нужен и вы его приобрели для экспериментов ? вот а печатной машинке из прошлого нельзя а вот на синумерике можно - удивительные вещи в настоящем происходят!! на 100 % уверен что там не модуль а либо писимиси ай либо жд @mircomax81 хотите работать в дос почитайте помощь по командам 
    • PuKoLLleT
      Доброго дня всем. Поделитесь опытом,раньше такое не доводилось делать. На торце фланца нужно сделать  восемь отверстий ф17H7 на токарно-фрезерном станке с осью Y ,имеется ManualGuide.В моем понимании нужно просверлить,а затем торцевой фрезой расточить нужный диаметр.Получится такой фокус,или надо разверткой доводить нужный размер?  Стойка Fanuc 0i-Tf.
    • Snake 60
      Всё верно, я даже русификатор делал для него (ушло на это где-то около года). Хороший софт был, я всех знакомых на него подсадил в свое время :) У меня даже где-то образ на виртуалке лежит с SW2014+MechSoft, Жаль, что автодеск его поглотил, а не DS :( А по сути вопроса, проектировал двухступенчатый планетарный редуктор в свое время. Что было нужно: Справочник по планетаркам (автора не помню, если надо поищу), из софта MathCAD + GearTeq (софтина идет вместе с GearTrax, только рассчитывает и моделирует несколько зацеплений согласно выбранной схеме, в том числе планетарки) Ой и ошибаетесь. Звездочки - не равно зубчатые колеса в планетарке) Мы намучились с малой точностью изготовления на эл.эрозии, а Вы лазером ))) Был собран опытный образец редуктора с незакаленными деталями, чисто проверить геометрию, отладить сборку. Так потом начальство этот редуктор сказало испытать в бою, как я не противился)) Помер за пару дней интенсивных нагрузок ))) Материал, термообработка и точности изготовления решают )
    • Snake 60
      @Тихоход  Ещё один вариант - изучать программирование и писать свою программу/макрос. Вот пример конфигуратора двери: https://www.youtube.com/watch?v=wv4HryWQBSk
    • mircomax81
      Посредством Diskcopy можно сделать адекватную копию на флоппи диск?
    • Andrey_kzn
      Да, ведь советовали автору вытащить жёсткий диск и сделать образ. Неужели самому не интересно, как устроен этот старый промкомпьютер? Там может стоять как жёсткий диск, так и CF-карта, или же Disc-on-chip или Disc-on-module.  Как-то очень давно, на подобном промышленном оборудовании (большая печатная машина) я не смог перенести  ПО с родной CF - карты на другую, такого же размера но другой фирмы. Была также станочная оболочка под досом.  Образ я делал Нортон гостом, развернул его на другую CF-карту без проблем. Машина загрузилась нормально и работала ровно 2 дня, на неродной CF-карте,  потом зависла, и отказалась загружаться. Пришлось вызывать сервисника. От него мы узнали, что нельзя просто так взять и заменить карту  - носитель системного ПО, на другую. А полезли мы туда, так как руководство захотело печатать отчёты по работе машины. В станочном ПО такая функция была. Вот только принтер надо было купить у фирмы - производителя этой самой машины. В попытках заставить работать другой принтер мы редактировали файл  AUTOEXEС.BAT, на предмет загрузки драйвера принтера, ничего не получилось, зато перестали открываться некоторые страницы станочного ПО.  Образ у нас был давно снят, и мы развернули его на другую карту памяти. Родную карту я трогать не стал (как чувствовал, что нельзя ). Сервисник восстановил ПО с архивной дискеты на родную карту памяти, и всё заработало. Дискеты с архивами ПО шли вместе с документацией к машине.  Там были дискеты с Досом, станочной оболочкой, параметрами приводов, программой ПЛК. Он же и предупредил нас о предельно аккуратном обращении с родной картой памяти, и посоветовал немедленно сделать образы с архивных дискет, что мы сразу и проделали.. Вот такой сюрприз от машины эпохи Дос.
    • Борман
    • gudstartup
      а ведь все работало...
×
×
  • Создать...