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

SolidWorks document as dirty


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

есть такая фишка в программировании на API SW:

Syntax (OLE Automation):

> ModelDoc2::SetSaveFlag

Syntax (COM):

status = ModelDoc2->SetSaveFlag ( )

Return: (HRESULT) status, S_OK if successful

Description:

This method flags the document as dirty. If the user tries to close the part, the Do you wish to save changes? dialog is displayed.

Remarks:

If SolidWorks data has changed, this method marks the SolidWorks document as dirty so that the end-user is prompted when attempting to close the document. You might want to use this method with applications that use ModelDoc2::IGet3rdPartyStorage to save stream data in SolidWorks files.

If you have programmatically changed the SolidWorks model, using this method is not necessary because the SolidWorks document is flagged as dirty automatically.

Вот как правильно перевести в данном контексте слово "dirty" ? Да и вообще общий смысл.

У меня конечно есть варианты понимания, но пока не буду озвучивать, дабы не навязывать своего мнения.

PS. желательно конечно услышать перевод именно в данном контексте и именно с учетом компьютерной специфики.

То что слово dirty переводится как "грязный, запачканный..." это я знаю.

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


Ну ежели в лоб, в иннет-переводчике

"Описание: Этот метод flags документ как пакостно. Если потребитель пытается закрыть часть, то do, котор вы желаете сохранить изменения? диалог показан."

Ну тоже бред конечно.... :blush:

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

Меня собственно что интересует: где прописывается этот флаг - только в документе детали или нще и в документе вышесттоящей сборки?

Ведь в случае изменеия деталии и после этого, открыртия сборки(куда входт эта деталь), появпявляется запрос: "Детели а сборке изменились!. Хотите перестроить эту сборку сейчас? ".(если конечно этот запрос не отклсен).

Значит сброка уже "знает", что детель изменилась ! Вопрос - откуда?

Тут я вижу два варианта: или сборка"читает"как-то змененную деталь и считывает этот флажок или этот флажок "прописывается" в сборкув сразу в момент изменения детали!

Других вариантоа я пока не нашел.

Какме у кого какое мнения/соображения?

Если выяснмить этот вопрс, то повяаится как минммум две возможости:

- открывать пазные файлы чертежей, прм условмм НЕсовпадения имен мрдели и чережей (нелавно этот вопрос на форуме подниался);

- пересчтиывать только те цепочки, куда входит измененная деталь - а это, ИМХО, резко сократит время регенерации(при большой сборки).

Для сведения: эти мысли зародмлись у меня еще году в 2005-м т..е в SW2005-м.

Вот такие мои соображения, критикуйте...

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

Меня собственно что интересует: где прописывается этот флаг - только в документе детали или нще и в документе вышесттоящей сборки?

Ведь в случае изменеия деталии и после этого, открыртия сборки(куда входт эта деталь), появпявляется запрос: "Детели а сборке изменились!. Хотите перестроить эту сборку сейчас? ".(если конечно этот запрос не отклсен).

Значит сброка уже "знает", что детель изменилась ! Вопрос - откуда?

Тут я вижу два варианта: или сборка"читает"как-то змененную деталь и считывает этот флажок или этот флажок "прописывается" в сборкув сразу в момент изменения детали!

Других вариантоа я пока не нашел.

Какме у кого какое мнения/соображения?

Если выяснмить этот вопрс, то повяаится как минммум две возможости:

- открывать пазные файлы чертежей, прм условмм НЕсовпадения имен мрдели и чережей (нелавно этот вопрос на форуме подниался);

- пересчтиывать только те цепочки, куда входит измененная деталь - а это, ИМХО, резко сократит время регенерации(при большой сборки).

Для сведения: эти мысли зародмлись у меня еще году в 2005-м т..е в SW2005-м.

Вот такие мои соображения, критикуйте...

Попробуй научный эксперимент.

1. Копируем обычным проводником деталь вместе со всей сборкой в укромную папку 1.

2. Отредактируй исходную деталь в исходной папке пока сборка не видит (т.е. сборка не должна быть открыта!).

3. Закрой деталь.

4. Переименовываем деталь (или переносим в другую укромную папку 2).

5. Копируем обратно деталь из укромной папки 1.

6. Открываем сборку. Если при этом сборка не собирается перестраиваться - дело в детали. Сборка всегда при открытии просматривает детали и при их отсутствии просить поискать деталь.

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

Вот посмотрел в Мультитране во вычислительной технике:

dirty cache buffer буфер, ожидающий записи на диск

dirty cache buffer изменённый кэш-буфер, не записанный на диск

dirty data изменённые данные

dirty data недействительные данные

dirty line низкокачественная линия (связи)

dirty links необновлённые связи

dirty page list список страниц, ожидающих записи на диск

dirty power некачественное электропитание

dirty power нестабильное электропитание

quick-and-dirty routine черновая программа

quick-and-dirty walkthrough поверхностный критический анализ

quick-and-dirty walkthrough поверхностный разбор

short term cache dirty hit совпадение при обращении в краткосрочный изменённый кэш

А вот обсуждение по НЕсовпадению имен мрдели и чережа виноват, пропустил как-то... Можно менять модель для чертежа при его открытии. Не вот это ли надо? (см картинку)

post-22528-1267513346_thumb.jpg

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

Попробуй научный эксперимент.

1. Копируем обычным проводником деталь вместе со всей сборкой в укромную папку 1.

2. Отредактируй исходную деталь в исходной папке пока сборка не видит (т.е. сборка не должна быть открыта!).

3. Закрой деталь.

4. Переименовываем деталь (или переносим в другую укромную папку 2).

5. Копируем обратно деталь из укромной папки 1.

....

Вот и остается только пробоватью.

Я-то надеялся на ответ по-существую.

Может кто уже прошел через "огонь, воду и меднве трубы"...

Ладно, будем эсперименимровать...

Вроде где-то что-то еще сталось с 2005-го...

PS я почему бросил тогда этим вопросм заниаться: времени как всегда не зватало да и ПК были слабьенькие...для постоянного отлавнивания событй...

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

...

А вот обсуждение по НЕсовпадению имен мрдели и чережа виноват, пропустил как-то... Можно менять модель для чертежа при его открытии. Не вот это ли надо? (см картинку)

ИМХО это как раз ручая перебивка(апрвка ссылок - именно того я и хотел избежать!)

Вот нашел что-то старенькое(2003-й), откомпилировал под SW 2010-й, вроде работает.

Только вот сам свой код еще и не смотрел :-)

Эта заача по созданию чертежей с разными именами с одной модели.

Изменения в модели отображаются во всех чертежах. И из любого чертежа мона открыть 3Д-модель по ПКМ !

Если надо, могу подарить бЕЗВОЗДМЕЗДНО (ну т.е. даром) :-)

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

Тут вроде как раз недавно была про

Так вот я почему и поднял эту тему. Хотя этот вопрос для меня второстепенный - спрашивал-то я про "dirty"....
Ссылка на сообщение
Поделиться на других сайтах

Ну ежели в лоб, в иннет-переводчике

Был неплохой фильм "Грязные обманщики". В данном случае, скорее, "черновик". Скорее, речь идет о коллективной работе.

Отредактировал:

dirty

1) "запорченный" (файл, данные и т.п.)

2) флаг изменения (устанавливаемый в состояние "1" при изменении файла, объекта или данных и сбрасываемый в "0" при их сохранении на диске)

Т.е. это компьютерный термин . И догадаться по смыслу трудно. Источник <noindex>http://lingvo.abbyyonline.com/ru/en-ru</noindex> .

To 'Streamdown'

При просмотре программы "Время" знакомая высказалась "Наверное, перейдут на английский. Потому, что русским владеют плохо."

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

Надоели эти американские слова))))

Виноваты не слова, а неквалифицированные переводчики. Именно они и формируют наш язык. А происходит все потому, что практически вся техника идет к нам из-за бугра. А мы только репу чешем: "как перевести "LM Stroke" и т.д. и т.п. :((((.

Что делать? - Учить чужой язык, если хотим сохранить свой. Читать оригинальные тексты.

Эта заача по созданию чертежей с разными именами с одной модели.

Изменения в модели отображаются во всех чертежах. И из любого чертежа мона открыть 3Д-модель по ПКМ !

Если надо, могу подарить бЕЗВОЗДМЕЗДНО (ну т.е. даром) :-)

Неплохо бы было ;). Или подскажи какая подпрограмма это делает?
Ссылка на сообщение
Поделиться на других сайтах

Виноваты не слова, а неквалифицированные переводчики. Именно они и формируют наш язык. А происходит все потому, что практически вся техника идет к нам из-за бугра. А мы только репу чешем: "как перевести "LM Stroke" и т.д. и т.п. :((((.

Что делать? - Учить чужой язык, если хотим сохранить свой. Читать оригинальные тексты.

Неплохо бы было ;). Или подскажи какая подпрограмма это делает?

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

dirty

1) "запорченный" (файл, данные и т.п.)

2) флаг изменения (устанавливаемый в состояние "1" при изменении файла, объекта или данных и сбрасываемый в "0" при их сохранении на диске)

Т.е. это компьютерный термин . И догадаться по смыслу трудно.

...

Меня собственно иентересует не сам перевод этого слова, а технология работы SW:

Вот имеем мы сборку, открываем любую деталь из нее, меняем каккой-то размер. Насколько я понимаю флажок "dirty" взводится.

Так вот где он хранится/взводится - только в данной детали или и в сборке?

Ведь при отрытии этой сборки SW говорит, что детали изменились и требуется пересройка.

Окуда сбрка "узнала", что деталь изменилась?

Пардон, уже писал об этом:

"Тут я вижу два варианта: или сборка в момент ее открытия "читает"(или проверяет) как-то измененную деталь и считывает этот флажок или этот флажок "прописывается" в сборку сразу в момент изменения детали!

"

Вот в чем вопрос...у меня

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

Окуда сбрка "узнала", что деталь изменилась?

"Тут я вижу два варианта: или сборка в момент ее открытия "читает"(или проверяет) как-то измененную деталь и считывает этот флажок

Эксперимент показывает, что именно так. Попробуйте открыть сборку и деталь, входящую в эту сборку. Отредактируйте детали и переключитесь на сборку. Солид спрашивает перестраивать или нет. Если нажать "Перестроить", то этот флажок появляется и у сборки (обратите внимание на символ "*" в заголовке окна солида после названия модели). Если же вы нажмете "Не перестраивать", то сборка остается прежней, и закрывается без подтверждения. А вот откроется она уже с отредактированной деталью, несмотря на то, что изменения мы не сохранили.

или этот флажок "прописывается" в сборку сразу в момент изменения детали!

Не так. Флажок появляется только после перестроения сборки.
Ссылка на сообщение
Поделиться на других сайтах

Эксперимент показывает, что именно так. Попробуйте открыть сборку и деталь, входящую в эту сборку. Отредактируйте детали и переключитесь на сборку. Солид спрашивает перестраивать или нет. Если нажать "Перестроить", то этот флажок появляется и у сборки (обратите внимание на символ "*" в заголовке окна солида после названия модели). Если же вы нажмете "Не перестраивать", то сборка остается прежней, и закрывается без подтверждения. А вот откроется она уже с отредактированной деталью, несмотря на то, что изменения мы не сохранили.

Не так. Флажок появляется только после перестроения сборки.

Отсюда у меня возникает следующий глубочайший вопрос:

при открытии сборки, а перед этим некоторые(не все!) детали были изменены, можно ли с помощью данного флажка (или другим методом) определить какие именно детали были измененны?

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

Отсюда у меня возникает следующий глубочайший вопрос:

при открытии сборки, а перед этим некоторые(не все!) детали были изменены, можно ли с помощью данного флажка (или другим методом) определить какие именно детали были измененны?

Сформулируйте задачу более конкретно. Измененные детали открыты и ещё НЕ сохранены со своими изменениями? То-есть они имеют свойство DIRTY? Или же детали изменены и сохранены, а сборка - нет?

Если 2-ой случай, то по свойству DIRTY список измененных в сборке деталей не составить, нужно искать другой способ.

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

Сформулируйте задачу более конкретно. Измененные детали открыты и ещё НЕ сохранены со своими изменениями? То-есть они имеют свойство DIRTY? Или же детали изменены и сохранены, а сборка - нет?

Если 2-ой случай, то по свойству DIRTY список измененных в сборке деталей не составить, нужно искать другой способ.

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

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

Вот почему мне и хотелось бы определить только те детали, которые были изменены - это же на 2-3 порядка меньше времени займет. ИМХО.

Если, допустим, главная сборка содержит 2...5 тыс. входящих, а изменил я деталей 5 всего, но они могут входить как в главную сборку, так и в подсборки...

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

Теперь задача мне более-менее понятна.

Непонятно только модифицируете и пересохраняете детали автоматически или вручную?

Могу предложить такой способ:

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

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

Может это и велосипед, но другого способа я бегло посмотрев справку по API придумать не смог.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • ispite
      Всем привет, спасибо за ответы, но просто так не удалось создать сборку, солид выдавал ошибку. Пришлось Сохранить как IGES (файл разросся до 920 МБ), потом открыл как деталь (в нейстало шустрее работать), нажал "создать сборку" и она создалась! НО она создалась без поверхностей, а они тоже нужны
    • Alexey8107
      Всем доброго дня. Имеется ивановский обрабатывающий центр ИС-800, в нем установлены: PSM-45HVi A06B-6120-H045 SPM-30HVi A06B-6121-H030#H550 Возникла авария 9030 Overcurrent in the converter input circuit. Если смотреть В-65285 в этом случае на PSM должна отображаться 1, а на SPM - 30. Так оно и есть на самом деле. Документ ссылается на пункт 3.1.1, в свою очередь этот пункт говорит о неисправности PSM и следует проверить Входящее питание. Скорее всего здесь имеется ввиду питание управления, оно 240 В и стабильно Рекомендуют проверить реактор. Сразу откидываем, т.к. дело до включения силового питания еще даже не доходит, МСС отключен. Да и реактор штатный, всю жизнь работал с этим реактором. Проверить IGBT. Проверить проверил как мог, на КЗ, но дело до силовухи еще не доходит, ее питания еще нет и физически включиться не может из за MCC(ну это естественно, блок в аварии). Принципиально все рекомендации. На LEADWELL была похожая ситуация, на торможении шпинделя на PSM помнится выпадала авария 1, а на шпинделе не помню уже что. Тоже думали на PSM, а судя по всему мозг вынимал рекуператор в SPM. Т.к. на шине 500 вольт на торможении шпинделя напряжение вылетало далеко за 500 вольт выше. Здесь тоже нечто подобное, SPM опрокидывает PSM в аварию. Вобщем при включении питания станка, запитывается только управление на PSM, а он в свою очередь раздает 24 вольта на все остальные блоки по CXA2A, если все нормально и ЧПУ включена, замыкается контакт МСС, разрешая подачу силового питания на PSM. Шаги загрузки на полностью исправном станке PSM    SPM   -          A   -         50   -         12(или 18)   -         -- После включения ЧПУ и подачи силового питания   0         0 У нас PSM    SPM   -          A   -         50   -         12(или 18)   1         30 Включение силовухи невозможно. Что было сделано: 1. Проверены все питания, 240 СХ1А, 24 СХА2А, силовое питание, везде порядок. 2. Проверены IGBT на PSM и SPM, явного замыкания нет. 3. Проверены обмотки серво двигателя шпинделя. На всех 0,4 ома(сопротивление щупов 0,2 + обмотки 0,2 ома). Сравнил с заведомо исправным таким же двигателем(он стоит в другом таком же станке и работает), все тоже самое, На массу КЗ нет. Да и силовухи тоже нет, так что это бессмысленно. 4. Откинул от PSM разъем СХА2А(тупо обесточил остальные блоки от 24 вольт), включил питание управления, PSM перестал опрокидываться в ошибку, на дисплее "-". Ждал долго, не опрокидывается. Силовое питание подавать не стал, ибо чревато для остальных блоков, а скидывать шинку постоянного тока честно говоря поленился. 5. С соседнего станка снял плату управления SPM и переставил в неисправный станок, по номерам они идентичные. Станок включился и даже подал силовое питание на PSM без всяких аварий. Гонял пару минут в холостую, все было нормально, но после опрокинулся с той же ошибкой 1 и 30 на PSM и SPM соответственно. 6. Взял плату управления SPM с неисправного станка и установил в исправный. Станок включился и сколько бы не гонял, и даже шпинделем крутил, не опрокидывается. Т.е. к обоим платам претензий ноль. После вернул все обратно. Исправный станок работает как ни в чем не бывало, неисправный сразу опрокидывается в аварию почти сразу после включения управляющего питания. На ЧПУ ошибка 9030 и какие то еще по осям, но они связаны с отсутствием питания на шине постоянного тока если не ошибаюсь, так что это нормально. Итого, силовуха явных признаков неисправности не имеет, и даже на какое то время с другой платой включает силовое питание(скорее всего это связано с разбросом параметров защит на разных платах). К самому PSM тоже вроде претензий не должно быть, хотя В-65285 указывает именно на него. В истории с LEADWELL точно помню, что тоже все указывало на PSM(в том числе 1 на дисплее), и даже сервисный инженер FANUC был уверен в неисправности именно PSM. По факту, неисправен был как раз SPM. К платам управления тоже никаких претензий, обе работают в исправном станке. Единственное логическое объяснение, неисправность силовухи SPM. НО!!! Шина постоянного тока даже не думает запитываться, так что и тут с опрокидыванием сразу после включения есть засада! Ну не тестирует же SPM и PSM силовую часть напряжением 24 вольта??? Ведь до включения силового питания в этом случае даже не доходит из-за аварии! Может у кого есть еще идеи или опыт устранения таких дефектов? Помнится у фанука была типовуха на платах А16В-2203-0623 с датчиками тока, они отгорали и привод отваливался в аварию по одной из фаз. Это были привода шпинделя и двух осей в одном корпусе, были такие у нас на токарных. Сервисники фанука тогда их тучами меняли... Хотя тут я думаю не наш случай
    • Kelny
      Даже при всём при этом оно не всегда корректно работало, так что даже в старых версиях было быстрее удалить размер и потом вставить заново, чем искать эти точки размеров, а потом пытаться их привязать к новому месту.   Возможно это всего лишь глюк новой версии, в последних версиях они похоже штатно закладываются.
    • maxx2000
      @davidovka я их сразу ссыпаю в TEMP,  в тех что живы нет отметок о создании current_session.pro. Интересно что сам current_session.pro создаётся, но не обновляется дата в отличии от даты модели. Может быть и вправду менял какие нить настройки и забывал сохранить
    • Ahito
    • maxx2000
      т.е. доверять разработчикам оснований нет. Ясно-понятно
    • clavr
      все так и было до 2024 версии. размеры не импортировались. теперь вот в 2024 так нельзя. может где-то в настройках поменять что нужно? все перерыл, пока не нашел
    • arsenev
      Первый свободный номер инструмента   int list $toolnumblist = extract(folder('TOOL'), 'Tool.Number.Value') int $newToolNumb = 1 while member( $toolnumblist, $newToolNumb) {     $newToolNumb = $newToolNumb + 1 } Message Info 'Первый свободный номер инструмента - ' + $newToolNumb     Инструменты с повторяющимися номерами   int list $toolnumbers = extract(folder('tool'),'Number.Value') int $i = remove_duplicates($toolnumbers) string $op = '' foreach $n in $toolnumbers {     string list $names = extract(filter(folder('tool'),'this.Number.Value == "' + $n + '"'),'Name')     if size($names) > 1 {         $op = $op + 'Инструменты с повторяющимся номером T ' + $n + CRLF         foreach $name in $names {             $op = $op + $name + CRLF         }         $op = $op + CRLF     } } message info $op     Удаление выбранного   Макрос, который проверяет тип объекта, а затем позволяет выбрать один и удалять выбранные части. Я связал это с ctrl+d.   string list $rootTypes = {'toolpath','featureset','pattern','boundary','model'} string list $selectedTypes = {} foreach $rt in $rootTypes {     if entity_exists(entity($rt,'')) {         entity $ent = entity($rt,'')         if number_selected($ent.RootType, $ent.Name) > 0 {             int $i = add_last($selectedTypes,$rt)         }     } } if size($selectedTypes) <= 0 {     return } int $index = -1 if size($selectedTypes) == 1 {     $index = 0 } else {     $index = input choice $selectedTypes 'Wich Type to remove?' } if $index != -1 {     String $cmd = 'DELETE ' + $selectedTypes[$index] + ' "' + entity($selectedTypes[$index],'').Name + '" SELECTED'         DoCommand $cmd }
    • PETR_1
      Можно переназначить правую и центральную (колесо) кнопки с помощью бесплатной программы X-Mouse Button Control (есть портабельная версия). Это переназначение будет работать только для компаса.
    • Kelny
      Может изменяемый вами размер импортирован из модели?  Обычно переносилось удержанием левой кнопки мыши, а если сделать двойной клик, то нужно потом выбрать новый объект уже без удержания кнопок мыши.
×
×
  • Создать...