реклама на сайте
подробности

 
 
> Изменения-длясебяшки, (может кому ещё пригодится)
alex9
сообщение Oct 12 2013, 15:47
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 231
Регистрация: 5-06-11
Пользователь №: 65 492



Небольшие простые изменения, сделавшие мою работу в kicad'е несколько комфортнее.
(это не исправление багов).

Привожу на примере тестовой сборки 4378.

Увеличил размер сединения проводников в eeschema до 1,5 мм. Теперь при печати больших форматов на А4 они нормально видны.
Код
sch_junction.cpp:42
- int SCH_JUNCTION::m_symbolSize = 40;    // Default diameter of the junction symbol
+ int SCH_JUNCTION::m_symbolSize = 60;    // Default diameter of the junction symbol

Ввёл дополнительные градации углов поворота в pcbnew. Для круглых плат - самое то.
CODE

dialog_general_options_BoardEditor_base.cpp:77
- wxString m_RotationAngleChoices[] = { _("45"), _("90") };
+ wxString m_RotationAngleChoices[] = { _("5"), _("10"),_("15"),_("30"),_("45"),_("60"), _("90") };

block.cpp:659
- int rotAngle = 900; // rotation angle in 0.1 deg.
+ int rotAngle = g_RotationAngle; // rotation angle in 0.1 deg.

dialog_general_options.cpp:70
switch( g_RotationAngle )
{
+ // wxString m_RotationAngleChoices[] = { _("5"), _("10"), _("15"), _("30"), _("45"), _("60"), _("90") };
+ // 0 1 2 3 4 5 6
+ case 50:
+ m_RotationAngle->SetSelection( 0 );
+ break;
+ case 100:
+ m_RotationAngle->SetSelection( 1 );
+ break;
+ case 150:
+ m_RotationAngle->SetSelection( 2 );
+ break;
+ case 300:
+ m_RotationAngle->SetSelection( 3 );
+ break;
case 450:
- m_RotationAngle->SetSelection( 0 );
+ m_RotationAngle->SetSelection( 4 );
break;
+ case 600:
+ m_RotationAngle->SetSelection( 5 );
+ break;

default:
- m_RotationAngle->SetSelection( 1 );
+ m_RotationAngle->SetSelection( 6 );
}

board_undo_redo.cpp:100
+ extern int g_RotationAngle;

board_undo_redo.cpp:572
case UR_ROTATED:
- item->Rotate( aList->m_TransformPoint, aRedoCommand ? 900 : -900 );
+ item->Rotate( aList->m_TransformPoint, aRedoCommand ? g_RotationAngle : -g_RotationAngle );
break;

case UR_ROTATED_CLOCKWISE:
- item->Rotate( aList->m_TransformPoint, aRedoCommand ? -900 : 900 );
+ item->Rotate( aList->m_TransformPoint, aRedoCommand ? -g_RotationAngle : g_RotationAngle );
break;

Мой "ответ Чемберлену". Французы лишили возможности выбора "мм" при изменении смещения образа в 3D-настройках модуля (в pcbnew).
Исправил пока так же безапелляционно.
Код
3d_aux.cpp:73
          /* adjust offset position (offset is given in UNIT 3D (0.1 inch) */
- #define SCALE_3D_CONV ((IU_PER_MILS * 1000) / UNITS3D_TO_UNITSPCB)
+ #define SCALE_3D_CONV (((IU_PER_MILS * 1000) / UNITS3D_TO_UNITSPCB) / 25.4)

И немного для красоты )
В последних версиях 3D-viewer'а появился текстолит в печатных платах! И, внимание, Realistic mode - плата с покрытием и "зелёнкой"!
Во их я и подправил (в оригинале - темноваты).
CODE

3d_draw.cpp:149
// Helper function: initialize the copper color to draw the board
// in realistic mode.
static inline void SetGLCopperColor()
{
// Generates a golden yellow color, near board "copper" color
- const double lum = 0.7/255.0;
+ const double lum = 0.9/255.0;
- glColor4f( 255.0*lum, 223.0*lum, 0.0*lum, 1.0 );
+ glColor4f( 255.0*lum, 225.0*lum, 20.0*lum, 1.0 );
}

// Helper function: initialize the color to draw the epoxy layers
// ( body board and solder mask layers) in realistic mode.
static inline void SetGLEpoxyColor( double aTransparency = 1.0 )
{
// Generates an epoxy color, near board color
- const double lum = 0.2/255.0;
+ const double lum = 0.45/255.0;
- glColor4f( 100.0*lum, 255.0*lum, 180.0*lum, aTransparency );
+ glColor4f( 10.0*lum, 255.0*lum, 150.0*lum, aTransparency );
}


Может у кого-нибудь тоже есть чем поделиться?

Сообщение отредактировал alex9 - Oct 12 2013, 17:17
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alex9
сообщение Nov 17 2013, 15:13
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 231
Регистрация: 5-06-11
Пользователь №: 65 492



Причёсывание сеанса Specctra из Topor'a.
Топор (по крайней мере v.5) записывает сеанс чуть-чуть не по спецификации ("MM" вместо "mm" и "Net" вместо "net").
Привязка к версиям 4222/4415.

specctra_import.cpp:94
CODE
if( fullFileName == wxEmptyString )
return;

//***************
wxTextFile file;
wxString T_FileName, T_String;
FILE* new_fp;

T_FileName=fullFileName+wxT("tmp") ;

if (file.Open(fullFileName))
{
size_t i;
for (i = 0; i < file.GetLineCount(); i++)
{
file[i].Replace(wxT("(resolution MM"),wxT("(resolution mm"));
file[i].Replace(wxT("(Net"),wxT("(net"));
T_String+=file[i]+wxT("\n");
}
file.Close();
wxRenameFile(fullFileName, T_FileName);
new_fp = wxFopen(fullFileName, wxT("wt"));
if (new_fp)
{
fprintf(new_fp,T_String.mb_str());
fclose(new_fp);
}
}
//***************
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 02:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01405 секунд с 7
ELECTRONIX ©2004-2016