Загрузка движущихся изображений с Google.com на Форум

Автор Vitalij Lysanov, 10.01.19, 02:20:15

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Vitalij Lysanov

10.01.19, 02:20:15 Последнее редактирование: 10.01.19, 04:09:37 от Vitalij Lysanov
         
Загрузка движущихся изображений с Google.com
 
 
   

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



  • Исходные изображения должны быть загружены на Google.com.
    (При регистрации дают 15 Гиг свободного пространства)

    На Google.doc формируем текст и размещаем изображения.

    Все выделяем и копируем.
    Открываем почту и вставляем в поле письма. Должно вставиться с картинками.
    Отправляем письмо себе.

    Открываем полученное письмо.
    Наводим на изображение и правой клавишей мыши открываем меню.
    Копируем Url картинки
    Вставляем URL в текст Google.doc, под картинкой.

Должно быть примерно:
https://lh4.googleusercontent.com/dMBLqyvtBjsR5X-PHzac7C8EizSjfT-cuYauEqYDMpFQjV9o3dXLLR4wfKvRBj18qu8UgmFN0tj0cgx7-Nf7QydzZL45uHNQEWnivk61HOx8VhIWPNInQzoSaFaH6eY1kUX5Z08w



Делаем такое: (     img   /img  должно быть в квадратных кавычках,        иначе уже задвигается )
   img
https://lh4.googleusercontent.com/dMBLqyvtBjsR5X-PHzac7C8EizSjfT-cuYauEqYDMpFQjV9o3dXLLR4wfKvRBj18qu8UgmFN0tj0cgx7-Nf7QydzZL45uHNQEWnivk61HOx8VhIWPNInQzoSaFaH6eY1kUX5Z08w
   /img


Еще немного тегов для украшения, и все

Копируем все, можно с картинками, они все равно не вставятся.

Вставляем в окно ввода на Форуме.

Включаем предпросмотр.

Должно быть с картинками и двигаться


Ниже, возможный пример оформления текста





         
Последовательность работ при установке электромоторов   
 
 
   

   

         
Программная сборка по совпадению ЛСК
 
 
   

   

         
Сборка балки по ЛСК
 
 
   
На собранной ферме ставим ЛСК для труб.
На трубах под углом тоже ставим ЛСК.
На рисунке вверху видно одно из сопряжений совпадение ЛСК



   




+ Благодарностей: 2

Vitalij Lysanov

На тему размещения на форуме текстов с картинками формата Google документы, есть вариант лучше.

Копируем текст и размещаем  в окне Хаброконвертера:
http://shirixae.github.io/habraconverter-v2/

Конвертируем результат конвертации и размещаем на странице Excel

Запускаем макрос следующего содержания:

Sub img_()
'
'
'
'
'
    Cells.Select
   
    Selection.Replace What:=""">", Replacement:="[/img]", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
   
    Selection.Replace What:="<img src=""", Replacement:="[img]", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

   
   
   
    Selection.Replace What:="<h1>", Replacement:="[size=6][b]", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

    Selection.Replace What:="</h1>", Replacement:="[/b][/size]", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False




    Selection.Replace What:="<h3>", Replacement:="[size=4][b]", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

    Selection.Replace What:="</h3>", Replacement:="[/b][/size]", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False


End Sub



Результат копируем на форум и получаем текст, который ниже.

Картинки вставляются и пару заголовков конвертирует.
Осталось таблицы и списки подправить...


                                                   
                                                   
1. Последовательность работ при установке электромоторов                                                   
                                                   
                                                   
                                                   
2. Немного подробней о процессе установки электромоторов                                                   
                                                   
На модели болта по оси, там, где шайба, ставим Локальную Систему Координат (ЛСК). И обязательно нужно придумать имя для ЛСК, чтобы все <i>само</i> собралось.                                                    
Здесь ключевое слово <i>само, </i>т.к. дальше останется только смотреть, как работает программа, даже спецификацию формирует <i>сама</i>.                                                    
Имена стыкуемых ЛСК должны совпадать, и пока имена набираем вручную.                                                   
                                                   
3. Варианты установки электромотора на плите:                                                   
                                                   
3.1. Работать без сборки «Крепежный элемент».                                                   
                                                   
На мотор ставим шайбу,                                                    
которая дает адрес на гровер,                                                    
который дает адрес на болт.                                                    
Болт уже ничего не дает.                                                   
3.2. Вариант со сборкой «Крепежный элемент»:                                                   
                                                   
Это нужно предварительно собрать сборку Болт, Гровер и Шайба.                                                   
                                                   
<u>В модели Болта ставим ЛСК и записываем такое имя                                                   
<i></u>ЛСК.Выход, Болт, Дед 8.019.001, Раздел СП — Детали</i>                                                   
                                                   
<u>В модели гровера записываем имя                                                   
<i></u>ЛСК.Вход, Болт, Дед 8.019.001                                                   
ЛСК.Выход, Гровер, Дед 8.019.002, Раздел СП — Детали</i>                                                   
                                                   
<u>Аналогично для Шайбы                                                   
<i></u>ЛСК.Вход, Гровер, Дед.8.019.002                                                   
ЛСК.Выход, Шайба, Дед 8.019.003, Раздел СП — Детали</i>                                                   
                                                   
<u>Выходная ЛСК для установки крепежного элемента состоящего из болта, гровера и шайбы                                                   
<i></u>ЛСК.Выход, Болт.Гровер.Шайба, Дед 5.019.001, Раздел СП — Сборка</i>                                                   
                                                   
<u>Сразу поставим ЛСК на каждое отверстие крепления мотора в месте стыковки с шайбой:                                                   
<i></u>ЛСК.Вход, Болт.Гровер.Шайба, Дед 5.019.001                                                   
ЛСК.Вход, Болт.Гровер.Шайба, Дед 5.019.001                                                   
ЛСК.Вход, Болт.Гровер.Шайба, Дед 5.019.001                                                   
ЛСК.Вход, Болт.Гровер.Шайба, Дед 5.019.001</i>                                                   
                                                   
<u>И одну выходную ЛСК на плоскости установки мотора, например в левом верхнем отверстии:                                                   
<i></u>ЛСК.Выход, Мотор.Болт.Гровер.Шайба, Дед 5.019.002, Раздел СП — Сборка</i>                                                   
                                                   
Осталась плита.                                                   
Копируем отверстия с мотора и размещаем их на плите. Можно повернуть эту группу отверстий, и ЛСК тоже сама повернется, иначе пришлось бы строить вектор и поворачивать ЛСК. Можно также крепить мотор на любой наклонной плоскости.                                                   
<u>ЛСК для установки моторов на плите:                                                    
<i></u>ЛСК.Вход, Мотор.Болт.Гровер.Шайба, Дед 5.019.002                                                   
ЛСК.Вход, Мотор.Болт.Гровер.Шайба, Дед 5.019.002                                                   
ЛСК.Вход, Мотор.Болт.Гровер.Шайба, Дед 5.019.002</i>                                                   
                                                   
На плите размещаем одну выходную ЛСК в левом верхнем отверстии крепления. Это для крепления на следующем уровне сборки.                                                   
                                                   
<u>ЛСК на плите для установки в следующий уровень сборки:                                                   
<i></u>ЛСК.Выход, Плита.Мотор.Болт.Гровер.Шайба, Дед 5.019.003                                                   
                                                   
4. Сравнение работы с графикой и текстом.                                                   
</i>                                                   
Проектируем в Компасе, а ни одной иллюстрации и все понятно. Сейчас мы разбираем полностью программный вариант сборки по ЛСК.                                                   
Программы любят, когда меньше графики. Каждый конструктор мечтает о серийном современном производстве, а там роботы на сборке, и которым для определенности тоже как раз нужны ЛСК деталей. Хорошо смотреть, как печатные платы набивают элементами.                                                   
Графика еще занимает очень много места в электронных документах.                                                   
На математических форумах тоже графику не любят, любят буковки. Все это лишний раз подтверждает, что:                                                   
<i>В начале было Слово                                                   
5. Диалоговый и программный режимы работы.                                                   
</i>                                                   
Для диалогового режима можно загрузить деталь на сборку и соединить обозначенные ЛСК деталей. Это похоже на Схему данных в Access, там добавляют на схему таблицу и проводят связи между ячейками таблицы.                                                   
Дальше все просто (это для программы просто). Берем плиту и видим три входных ЛСК. Ищем файл по децимальному номеру, загружаем в сборку и включаем сопряжение совпадение одноименных ЛСК, Вход и Выход. и т.д.                                                   
                                                   
Попутно из <i>Сопряжений_Совпадения ЛСК</i> составляем список для спецификации.                                                   
                                                   
<table>                                                   
<tr>                                                   
<td>Имя ЛСК                                                   
</td><td>В состав входят детали с такими именами ЛСК                                                   
</td></tr>                                                   
<tr>                                                   
<td>Плита.Мотор.Болт.Гровер.Шайба                                                   
</td><td>Мотор.Болт.Гровер.Шайба                                                   
</td></tr>                                                   
<tr>                                                   
<td>_"_                                                   
</td><td>Мотор.Болт.Гровер.Шайба                                                   
</td></tr>                                                   
<tr>                                                   
<td>_"_                                                   
</td><td>Мотор.Болт.Гровер.Шайба                                                   
</td></tr>                                                   
</table>                                                   
                                                   
<table>                                                   
<tr>                                                   
<td>Имя ЛСК                                                   
</td><td>В состав входят детали с такими именами ЛСК                                                   
</td></tr>                                                   
<tr>                                                   
<td>Мотор.Болт.Гровер.Шайба                                                   
</td><td>Болт.Гровер.Шайба                                                   
</td></tr>                                                   
<tr>                                                   
<td>_"_                                                   
</td><td>Болт.Гровер.Шайба                                                   
</td></tr>                                                   
<tr>                                                   
<td>_"_                                                   
</td><td>Болт.Гровер.Шайба                                                   
</td></tr>                                                   
<tr>                                                   
<td>_"_                                                   
</td><td>Болт.Гровер.Шайба                                                   
</td></tr>                                                   
</table>                                                   
                                                   
<table>                                                   
<tr>                                                   
<td>Имя ЛСК                                                   
</td><td>В состав входят детали с такими именами ЛСК                                                   
</td></tr>                                                   
<tr>                                                   
<td>Болт.Гровер.Шайба                                                   
</td><td>Болт                                                   
</td></tr>                                                   
<tr>                                                   
<td>_"_                                                   
</td><td>Гровер                                                   
</td></tr>                                                   
<tr>                                                   
<td>_"_                                                   
</td><td>Шайба                                                   
</td></tr>                                                   
</table>                                                   
                                                   
При желании эту информацию можно раскрыть как заказ и получить, что:                                                    
<ul>                                                   
<li>На плите установлено три мотора                                                   
</li>                                                   
<li>На установку каждого мотора идет четыре болта, четыре гровера и четыре шайбы.                                                   
</li>                                                   
</ul>                                                   
                                                   
Можно сформировать и привычную спецификацию.                                                   
                                                   
6.Немного рисунков порадовать глаз:                                                   
                                                   
                                                   
                                                   
Рис 1. Болт Дед 8.019.001 и ЛСК Болта                                                   
                                                   
                                                   
Рис 2. Сборка Дед 5.019.001 Болт + Гровер + Шайба                                                   
                                                   
                                                   
Рис 3. Мотор с болтами и шайбами.                                                    
На рис 3 показана выходная система координат для установки на плиту.                                                   
                                                   
                                                   
Рис 4. Плита для установки электромоторов.                                                    
На рис 4 видно:                                                    
<ul>                                                   
<li>основную систему координат (большая цветная),                                                    
</li>                                                   
<li>одну из систем координат для установки мотора (маленькая цветная)                                                   
</li>                                                   
<li>две системы координат для двух моторов (черного цвета)                                                   
</li>                                                   
</ul>                                                   
                                                   
                                                   
                                                   
Рис 5. Плита с моторами.                                                    
На рис 5 справа видна ЛСК для установки на следующий уровень сборки.                                                   
                                                   
7. Возможные варианты задания ЛСК в Компасе                                                   
                                                   
В Компасе реализованы богатые возможности для задания ЛСК:                                                    
<ul>                                                   
<li>по координатам и векторам                                                   
</li>                                                   
<li>по объекту                                                   
</li>                                                   
<li>по углам Эйлера.                                                   
</li>                                                   
<li>...                                                   
</li>                                                   
</ul>                                                   
                                                   
                                                   
                                                   
Рис 6. Пример построения ЛСК по точкам на окружности и углам Эйлера.                                                   
                                                   
Код Python для построения по углам Эйлера. Код получен макро рекордером и добавлен цикл по углам                                                   
<source>                                                   
   r=100                                                   
    iPart7 = iKompasDocument3D.TopPart                                                   
                                                   
    ma=72                                                   
    for nn in range(ma):                                                   
        n=nn/10.0                                                   
                                                   
        iPoint3D = iLocalCoordinateSystem._oleobj_.QueryInterface(module_7.NamesToIIDMap['IPoint3D'], pythoncom.IID_IDispatch)                                                   
                                                   
        iPoint3D = module_7.IPoint3D(iPoint3D)                                                   
        iPoint3D.ParameterType = 1                                                   
        iPoint3D.X = 1.0*r*math.sin(20.0*math.pi*n/ma)                                                   
        iPoint3D.Y = r*math.cos(20.0*math.pi*n/ma)                                                   
        iPoint3D.Z = 0                                                   
        iLocalCoordinateSystem.OrientationType = 1                                                   
                                                   
        iLocalCSEulerParam = iLocalCSParameters._oleobj_.QueryInterface(module_7.NamesToIIDMap['ILocalCSEulerParam'], pythoncom.IID_IDispatch)                                                   
                                                   
                                                   
        iLocalCSEulerParam = module_7.ILocalCSEulerParam(iLocalCSEulerParam)                                                   
        iLocalCSEulerParam.NutationAngle = 0                                                   
        iLocalCSEulerParam.PrecessionAngle = 0                                                   
                                                   
        iLocalCSEulerParam.RotationAngle = -math.degrees(20.0*math.pi*n/ma)                                                   
        iLocalCoordinateSystem.Update()                                                   
        print (nn*10.0,20.0*math.pi*n/ma)                                                   
                                                   
        iLocalCoordinateSystem.Name="ЛСК_"+str(round(math.degrees(20.0*math.pi*n/ma)))+" Градусов"+ "__Нов 9.000.001"+"___Колесо"+"_____Детали"                                                   
                                                   
        iLocalCoordinateSystem.Update()                                                   
                                                   
                                                   
                                                   
                                                   
                                                   
                                                   
</source>                                                   
                                                   
Рис 7. Пример с конусами.                                                   
На конусе выходная ЛСК немного наклонена.                                                   
Соединяем ЛСК Вход и Выход.                                                   
                                                   
Код Python, отвечающий за загрузку и построение конусов. Программно соединяем входные и выходные ЛСК                                                   
<source>                                                   
   <i># В примере ЛСК берутся по номерам. </i>                                                   
    <i># Можно получить и имя ЛСК для всех деталей и записать в массив.</i>                                                   
    <i># Дальше собираем пары Вход - Выход для одинаковых имен ЛСК </i>                                                   
    <i># и включаем сопряжение - совпадение для пар ЛСК. </i>                                                   
                                                   
    <i># Будем загружать 700 конусов</i>                                                   
    kolich_det=700                                                                                  
                                                   
    for k_det in range(kolich_det):                                                   
       <i># Загрузка по имени файла</i>                                                   
        part = parts.AddFromFile(partFileName1, True, False)                                                     
                                                   
    for nomer_det in range(kolich_det-1):                                                   
    <i>#1111111111111111111111111111111111111111111111111111111111111111111111111111</i>                                                   
                                                          
       <i># подключаемся к очередному конусу</i>                                                   
        iPart = module_5.ksPart(iDocument3D.GetPart(nomer_det))                                                    
                                                   
        dd=iPart.GetFeature()                                                   
                                                   
       <i># Получение состава модели конуса</i>                                                   
        iFeatureCollection = dd.SubFeatureCollection(False, False)                                                    
                                                   
       <i># Под номером 3 записана ЛСК Вход</i>                                                   
        iFeature = iFeatureCollection.GetByIndex(3)                                                                       
                                                   
        ils1=iFeature.GetObject()                                                   
                                                   
                                                   
    <i>#222222222222222222222222222222222222222222222222222222222222222222222222</i>                                                   
                                                      
     <i># подключаемся к следующему конусу (nomer_det+1)</i>                                                   
        iPart = module_5.ksPart(iDocument3D.GetPart(nomer_det+1))                                                    
                                                        
        dd=iPart.GetFeature()                                                   
        iFeatureCollection = dd.SubFeatureCollection(False, False)                                                   
                                                   
       <i># Под номером 4 записана ЛСК Ввыход</i>                                                   
        iFeature = iFeatureCollection.GetByIndex(4)                                                         
                                                   
        ils2=iFeature.GetObject()                                                   
                                                   
                                                   
<i>#       Формирование матрицы поворота.                                                    
#       Пример векторного и скалярного произведения матриц                                                    
#        m=(iPart.GetSummMatrix(iDocument3D.GetPart(nomer_det)))                                                   
#        mn=np.array([m[0:3],m[4:7],m[8:11]])                                                   
#        print (mn)</i>                                                   
 <i>#       sk=np.dot(mn, mn)</i>                                                   
 <i>#       vk=np.cross(mn,mn)</i>                                                   
                                                   
    <i>#333333333333333333333333333333333333333333333333333333333333333333333333              </i>                                                   
        iPart = module_5.ksPart(iDocument3D.GetPart(nomer_det+1))                                                   
        dd=iPart.GetFeature()                                                   
        iFeatureCollection = dd.SubFeatureCollection(False, False)                                                   
                                                   
                                                   
                                                   
       <i># Под номером 5 записана вторая ЛСК выход</i>                                                   
        iFeature = iFeatureCollection.GetByIndex(5)                                                      
                                                   
        ils3=iFeature.GetObject()                                                   
                                                   
                                                   
       <i># Переключение выходных ЛСК на половине количества конусов</i>                                                   
        if nomer_det<kolich_det/2:                                                      
                                                   
           <i># Сопряжение совпадение "(0"</i>                                                   
            iDocument3D.AddMateConstraint(0,ils1,ils2,0,0,0)                                                     
                                                              
        else:                                                   
            iDocument3D.AddMateConstraint(0,ils1,ils3,0,0,0)                                                   
                                                   
                                                   
                                                   
                                                   
                                                   
</source>                                                   
                                                   
Рис 8. Пример с тройником из труб и фланцами.                                                    
В одной точке может быть несколько ЛСК. Фланец симметричный и если есть вторая симметричная ЛСК, можно подключиться к ней. Тройник развернется на 180 градусов.                                                   
                                                   
8. Программе легче работать с текстами, чем с графикой                                                   
                                                   
В общем случае сопряжения это очень трудоемкая для глаз операция. Выше в тексте рассматривался один из вариантов применения сопряжения совпадения ЛСК, <i>допускающий работу по программе. Исходная информация для программы это имена ЛСК, и это текст, а не графика.</i> Здесь можно четко сформулировать программисту задание. Например:                                                   
<i>Найти все ЛСК с одинаковыми именами и соединить сопряжением совпадения. </i>                                                   
Включил и смотри результат.                                                   
При изменении входных данных все перестраивается, т.к. все привязано к объектам.                                                   
Всем успехов.                                                   
                                                   
Программу можно пробовать и на Макро. Многие вещи на тему ЛСК можно записывать на макро рекордере, причем при формировании ЛСК на удивление макро рекордером записывается много операций. Программа пишется на Python, а можно работать практически на любом языке.                                                   
                                                   
9. Матрицы поворота                                                   
ЛСК это собственно матрица поворота плюс перемещение. Скалярное произведение матриц поворота это дополнительный поворот ЛСК.                                                    
Например, при повороте по одной оси на 30 градусов, вместо единиц и нулей, будут встречаться цифры 0.5 и 0.8....                                                   
Умножив скалярно матрицу саму на себя, цифры 0.5 и 0.8... меняются местами.                                                   
Это будет поворот на 60 градусов.                                                    
С перемещением все проще.                                                   
В общем случае на две детали есть две основные системы координат и могут быть ЛСК относительно основных координат. И нужно перемещая и вращая основные координаты совместить ЛСК деталей. Это собственно и сопряжение совпадением ЛСК.