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

Ansys для проектировщика КЖ-КМ


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



Цитата

Это среда для программирования.

Там , кстати , есть что-то для APDL так что есть смысл покопаться в Code.  

А смысл того что делал - автоматизация при построении модели . Выше описано для чего , не хочу повторяться.  Но можно полностью заменить платный UE бесплатным NP++ и избавиться от фокусов разработчиков UE :) 

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

Code

heart.gif.495a1841573dca66dcb8c8d77f9a2722.gif

25 минут назад, Fedor сказал:

NP++

bom.gif.a919846043b3b3d6d213e1d46747a1d5.gif

 

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

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

что-то для APDL так что есть смысл покопаться в Code.

https://marketplace.visualstudio.com/items?itemName=shenbo.apdl

Возможность писать код с плюшками автокомплит и интеллисенс. ? Или просто подсветка синтаксиса?

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

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

Затащить картинки архитекторов ?   Это вряд ли :) 

 

Цитата

 Или просто подсветка синтаксиса?

Что-то было и в UE  . Подсветка, дописывала по нескольким буквам слова... 

Так что есть смысл использовать в качестве редактора кодов.  По крайней мере попробовать. Ну и всякие обработчики при необходимости написать . Выбор языков большой  :) 

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

Интересно, как запускать *.js   на произвольной странице через меню .

 

В run.js  добавил

 

 /*  попытка добавить свой пункт меню   */
 var rmy = {
  text:"Выполнить мое",
  ctrl:true,
  key:116, 
  cmd: function(){
     addScript('C:\скрипты VSC\My.js');
  }
 };
 runMenu.addItem(rmy);
 addHotKey(rmy);

 

 

в  My.js 

 

'use strict';   // строгий режим соответствия 

alert("  1    ");

 

 

Пункт в меню добавился и когда стою на странице с  My.js  все срабатывает, а если переключаюсь на другую, то выдает ошибку...

 

 

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

Похоже проще выводить в какой-нибудь браузер и уже из него забирать в буфер и дальше в apdl.  Вроде и плагин jN  не понадобится.  Если все так то еще проще будет обрабатывать чем в UE  :)

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

Похоже проще выводить в какой-нибудь браузер и уже из него забирать в буфер и дальше в apdl.  Вроде и плагин jN  не понадобится.  Если все так то еще проще будет обрабатывать чем в UE  :)

 

Запускать как-то так    <script src="C:\скрипты VSC\my_alert.js"></script> 

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

Почти все удалось кроме того чтобы взять в строку содержимое буфера обмена.   В jN это оказалось легко.  

Выводить то просто

  <script>
    var str="    это запись через write <br/>  и перевод строки   ";
    document.write(str+'<br/>'+ ' еще перенос  все в порядке '  );   //   <br/>  так переводить строку
  </script>

  ... :)

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

Похоже работать с буфером обмена из скриптов не удается пока. Функции еще не сделаны.   А жаль, перспективы открывались очень любопытные.  Можно было бы сделать автоматизацию многих расчетов прямо в сети   :)  

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

<html>
    <head>    <meta charset="utf-8">   </head>
    <body>
             <script>   // обработчики событий
                 function OnMyClick(form,value){   // обработчик нажатия
               var MyStr=form.Mytxt.value; 
                    form.Mytxt.value = MyStr/3;
                 }
                
             </script>
           <!--    Заголовок     <br/> -->   
         <H1>Преобразование в код для APDL</H1>
         <FORM NAME="My">
            <TEXTAREA NAME="Mytxt" ROWS=10 COLS=80>   </TEXTAREA>
          <br>
            <INPUT TYPE="button" VALUE="Преобразовать " onClick="OnMyClick(this.form,this.value);">
         </FORM>
    </body>
</html>

 

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

 

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

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

Все отлично заработало на html страничке. Слегка коды с UE подправить в области файлов ввода -вывода и все дела. Проще чем думалось оказалось :)  

Ссылка на сообщение
Поделиться на других сайтах
<html>
    <head>    <meta charset="utf-8">   </head>
    <body>
        <script> 
           //   Это работающий вариант Ф.П. Пинежанинов      
             
           /*________________________________________________________________________
                функция обрабатывает строку buf  и выводит координаты  
                в строку курсора в активном окне в формате точек APDL
                если они встретятся в формате команды Список для точек или линий автокада
           ________________________________ http://pinega3.narod.ru/ _______________*/ 
           function coord(  ) { 
                var ix=0, iy=0, iz=0, ioff=2, ism=15, mas=5,  ind=false, m_l=10 ;     // позиция, смещение, индикатор наличия     var MyInStr='',  MyOutStr='' ; 
                var  x=0,  y=0,  z=0;                    //   для значений 
                var  cx=[],  cy=[],  cz=[];              //   для проверки на уникальность точки
                var Txt=new String('') ;
				var buf=new String(MyInOutStr) ;
				
                while( !isNaN(x+y+z)) {   // цикл по строке из буфера  isNaN(NaN)   if (  ) {    } else {    }
                
                   ix=ioff+buf.indexOf("X=", iz );
                   iy=ioff+buf.indexOf("Y=", ix );
                   iz=ioff+buf.indexOf("Z=", iy );
                   x=parseFloat(buf.substr( ix ,ism )); 
                   y=parseFloat(buf.substr( iy ,ism )); 
                   z=parseFloat(buf.substr( iz ,ism ));
                   x=mas*Math.ceil(x/mas);
                   y=mas*Math.ceil(y/mas);
                   z=mas*Math.ceil(z/mas);
                 
                   for (var i = 0 , ix=1 ; i < cx.length; i++) {  // проверка не было ли уже точки ранее
                      if ( (x==cx[i])&&(y==cy[i])&&(z==cz[i])   ) { ix=0;   break;  } // уже была
                   }
                   if ( ix>0 ) {
                        if (  (!isNaN(x+y+z))  ) {  // вывод в текст  && (ix>0)  
                           //   if ( !ind  ){ UltraEdit.activeDocument.write('  /PREP7  \n      m_z =0  ! точки  \n '  );  ind=true }
           			
           			
           			    if ( !ind  ){ Txt +='\n  /PREP7  \n      m_z =0  ! точки  \n  ';  ind=true;  }
           				
                           var strx=x.toString();  while( strx.length<m_l ) strx=" "+strx; 
                           var stry=y.toString();  while( stry.length<m_l ) stry=" "+stry; 
                           var strz=z.toString();  while( strz.length<m_l ) strz=" "+strz; 
           				
           				
                         //  UltraEdit.activeDocument.write('     k ,,  '+ strx +' , '+ stry + ' ,  m_z ,   $   \n '  );   //**************
           			  
           			     Txt +='    k ,,  '+ strx +' , '+ stry + ' ,  m_z ,   $   \n  ';   // это все работает и выводит в конец файла 
           			  
           
                        }  else { break }   // окончание while так как не нашли больше  
                     	 cx.push(x);   cy.push(y);   cz.push(z);    // запомнить для проверок от дублирования              
                   }
                    
                }    // конец цикла по строке из буфера
              
                if ( ind ) {ind=true;  MyInOutStr= Txt;  }				
				 buf=''; Txt=''; 
                return ind ;
           };   // конец функции
          
      function area( ) {
                var   m_in =0, m_ism=6, m_nfield=0, m_narg=1, m_type=0, i=0 , m_s=",",  m_t="" , m_str="FITEM,2,", ind=false ;
				var Txt=new String('') ;
				var buf=new String(MyInOutStr) ;
           
                while(  m_in!=-1 ) {                   // цикл по строке из буфера
               	   m_in=buf.indexOf("FLST", m_in ); 
               	   
               	   if ( m_in ==-1 ) break ;      //   ********выход если не найдено ******=> 
               	  
               	   m_in=    m_s.length + buf.indexOf(m_s, m_in ); 
               	   m_nfield=parseInt(buf.substr( m_in ,m_ism ));  // находит первую цифру 
                    m_in=    m_s.length+buf.indexOf(m_s, m_in );
               	   m_narg=  parseInt(buf.substr( m_in ,m_ism ));  // находит вторую  цифру 
                    m_in=    m_s.length+buf.indexOf(m_s, m_in );
               	   m_type=  parseInt(buf.substr( m_in ,m_ism ));  // находит третью  цифру 
           
               	   if ( m_type==3 ) {   // это признак  keypoint взять их
                   //	     UltraEdit.activeDocument.write( '\n  A, ' );
           		       Txt +='\n  A, ' ;
           		
                          for ( i = 0; i < m_narg; i++) {
                        	     m_in=m_str.length+buf.indexOf(m_str, m_in );     //
                       	     m_nfield=parseInt(buf.substr( m_in ,m_ism ));
                       	     m_nfield=Math.abs(m_nfield);
                        	     m_t=m_nfield.toString();  while( m_t.length<m_ism ) m_t=" "+ m_t;   
                          //    UltraEdit.activeDocument.write( m_t  +', ');  
           			        Txt += m_t  +', ' ;
                         } 
                        // UltraEdit.activeDocument.write( '   !!! '+ m_narg + '  точек ');
           			  Txt += '   !!! '+ m_narg + '  точек ' ;
                    } 
                   	
                }
                if ( m_type==3 ) {ind=true;  MyInOutStr= Txt;  }
					
				buf=''; Txt=''; 
			
           	   return  ind;  
           }; 	
		
         //___________________________________________________
		 
         var MyInOutStr='' ;  //  глобальная переменная для ввода вывода текстовой строки ****
		 //___________________________________________________
		 
		 </script> 

		 <script>    // обработчики событий 
		
           function OnMyClick(form,value){     // обработчик нажатия
		   
                 MyInOutStr=form.Mytxt.value ;    // взять текст в глобальную переменную  из окна
						
			     var ind= coord();  // преобразование текста из AutoCad в APDL
				 
				 if ( !ind ) ind=area();  // преобразование описания области 
				 
				  if ( !ind ) { MyInOutStr=' текст не для обработки ';  ind=true;   } 
				 
				 ind=true; 
				
			     form.Mytxt.value = MyInOutStr;  //  вставить переработанный текст в окно 
             }
         </script>
          
         <H1 align=center>Преобразование в код для APDL</H1>  <!--    Заголовок    	<br/> --> 
         <FORM NAME="My">
		      <p align=center>вставить текст из списка AutoCad с координатами точек Сведения>Список
			     <br>   точки поставить заранее и выбрать их
			     <br>   или описание области из Ansys Session Editor </p>
            <center> <TEXTAREA  NAME="Mytxt" ROWS=12 COLS=65>   </TEXTAREA> 
			      <br>  	<br>
                  <INPUT TYPE="button" VALUE="Преобразовать " onClick="OnMyClick(this.form,this.value);">
			</center>
         </FORM>
		   
    </body>
</html>


  <!-- 

Перед запуском сохранять файл  !!!!!!

 
-->

Вот работающий код, просто разместить в файле с расширением  html и запускать в браузере. Может кому будет полезно :)

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

Всё круто, но зачем вы завели 3 отдельный массива?

45 минут назад, Fedor сказал:

var cx=[], cy=[], cz=[];

а не один трёхмерный cxyz[[[]]]?

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

Для простоты и чтобы индексы проще считались. Сишная привычка работы с указателями. Рефлекторная :) 

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

https://htmlweb.ru/java/forms.php   вот статья которая помогла и все разъяснила :)

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
Ссылка на сообщение
Поделиться на других сайтах
14 минуты назад, Fedor сказал:

@Fedor зачем вам это? Вы до сих пор создаете модели в стороннем редакторе? )

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

Конечно. Это самое удобное и быстрое. Годится для оптимизаций и прочего.  Удобно экспериментировать модернизировать . Программа без  языка не программа а горсть кнопок и флажков :)

 

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

Конечно. Это самое удобное и быстрое. Годится для оптимизаций и прочего.  Удобно экспериментировать модернизировать . Программа без  языка не программа а горсть кнопок и флажков :)

 

Согласен с вами. Я о другом.)

 

41 минуту назад, ДОБРЯК сказал:

в стороннем редакторе?

Ключевое слово было сторонний.)

Это как редактор отдельно и компилятор отдельно в 2019 году. ))

 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • andrey2147
      Ну так-то да, Виктор скажет какая секретная кнопка или битик для мотора. Счас получается что М коды не могут отработаться . ? Вероятно из-за красной ощибки. Тогда да, даддер скачивай.
    • Viktor2004
      На руке Marpos привод электромоторчик
    • pps270391
      Требуется чтобы при назначении материалов, данные автоматически записывались в строки: - Заготовка - Типоразмер - Материал (для материала уже существует автоматическая команда "SW-Material@@По умолчанию@"наименование модели".SLDPRT", которая записывается автоматически) Есть ли возможность, чтобы в модель записывались остальные строки, с учетом доработки материалов. Я так понимаю доработка свойств материала делается как на предоставленном фото
    • Anat2015
      Привод наверное пневматика, вручную клапана нажимать.
    • Limon2986
    • scrimline
      А возьми в учëт тот факт что рука уже сорвалась с места, датчик нагрузки сработал и выключил привод руки. Соответственно рука то уже может нормально функционировать, просто необходимо запусть еë принудительно, проблема в том что я не знаю как это сделать. 
    • andrey2147
      Конечно, раскоксовать поможет форум.
    • Guhl
      Есть вот такие штуки. Если не лень, то можете на оптопарах hcpl спаять самому На плк простая программа с высокоскоростным счетчиком  Как вариант, по прерываню от нуль метки переписывать значенин счетчика в регистр     А фанук сам не умеет разве в диагностике показывать количество импульсов, которые насчитал?
    • gudstartup
      это как например у датчика уровни ttl какой плк работает с ttl уровнями а если уж проверять то нужен тестер сигналов например lir 590 но надо жгут изготавливать и разъем который на аi приводах стоит для энкодера проще всего проверить заменой датчика только вот со сроками покупки беда  хотя может шестерня виновата??
    • scrimline
      Сомневаюсь что попало что-то, скорее всего оператор который работал до меня этой рукой не пользовался да и за эмульсией не следил. Думаю скорее закоксовалось, поскольку после команды рука стояла на месте секунды 2-3 и начала опускаться с рывком. По поводу ладдера, постараюсь скинуть, но на нашем предприятии проблемы и с флешками и с общей сетью, да и ПК на рабочем месте нет. 
×
×
  • Создать...