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

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 пользователей

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




×
×
  • Создать...