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

Сделай свою работу в Solidworks эффективнее


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

оно то понятно, что API код это вообще несколько строк. А вот в арифметике то как раз и надо пописАть.

Как бы вы задали буквенно-цифровое обозначение зоны и её соответствие с границами квадрата в коде?

Вот кусок кода, написанного лет семь назад.

bres = swNote.IsBomBalloon();
if (bres)
{
	string strText = (string)swNote.GetText();
	string strBalloonName = (string)swNote.GetName();
	int iRowPos = 0;
	bres = FindPositionInGrid(strText, strBalloonName, ref iRowPos); // эта функция проверяет есть ли запись позиции в моем DataGridView
	if (bres)
	{
		string strZone_Y = string.Empty;
		string strZone_X = string.Empty;
		double[] arrPos = (double[])swNote.GetAttachPos();
		double pos_X = arrPos[0];
		double pos_Y = arrPos[1];
		int iX = listZone_X.Count; // список строк, получаемый при делении ширины формата текущего листа на сторону формата А4
		int iY = listZone_Y.Count; // список строк, получаемый при делении высоты формата текущего листа на сторону формата А4
		for (int x = 0; x < iX; x++)
		{
			double x_Zone = dWidth - zoneWidth * (x + 1);
			if (pos_X > x_Zone)
			{
				strZone_X = listZone_X[x];
				break;
			}
		}

		for (int y = 0; y < iY; y++)
		{
			double y_Zone = zoneHeight * (y + 1);
			if (pos_Y < y_Zone)
			{
				strZone_Y = listZone_Y[y];
				break;
			}
		}
		//string strNameZoneFull = strZone_Y + strZone_X;
		string strNameZoneFull = strZone_X + strZone_Y;
		// .................
	}
}

P.S. На разбивку на зоны больших форматах еще не жаловался....

P.P.S. Я не пользуюсь ни стандартной солидовской специей, ни макросами от Леона....

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


формат + формат предыдущих листов;

и даже не формат листа нужен, а размер листа swSheet.GetProperties(5) и swSheet.GetProperties(6)

первый символ обозначения зоны: zonesym1 = (swSheet1.GetProperties(5) + swSheet2.GetProperties(5) + swSheet3.GetProperties(5) + ... + swSheet_n.GetProperties(5))/0.21
номер второго символа обозначения зоны: numsym2 = Math.Fix(Note.GetAttachPos(1)/0.297) + 1
если numsym2 = 1, то zonesym2 = "А";
если numsym2 = 2, то zonesym2 = "Б";
и т.д.
в итоге обозначение зоны: zone = zonesym1 & zonesym2
Ссылка на сообщение
Поделиться на других сайтах

@@Shvg, понятно. Я по другому мыслил))

Создать класс квадрат с методом нахождения попадания точки.

Создать лист классов

Пробежка foreach заданной точки по всем классам квадратов.

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

имеется ли возможность настроить работу с латиницей в  макро ReplaceLabelView?

Конечно. Нужно только знать, какие символы там не используются, вроде русских Й, О, Х, Ъ, Ы, Ь.

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

по поводу латиницы и букв которые не должны быть использованы

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

если самому то где искать?

я бы использовал весь латинский алфавит за исключением I, O

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

Пока всё только в начале, есть ли у кого пожелания по добавлнению номера листа к виду, если вид находится на другом листе?

Тыкнуть на картинку

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

по поводу латиницы и букв которые не должны быть использованы

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

если самому то где искать?

я бы использовал весь латинский алфавит за исключением I, O

Можно и самому. В функции ReplaceNameView() файла frmReplace.cs макроса ReplaceLabelView  изменяем начальный символ видов. Строку с русской 'А' закомментируем, а запишем с латинской 'A'

 

............
            // Далее меняем буквы у видов

            //m_strLabel = "А"; // русская А. Начальная буква обозначения видов. 
            m_strLabel = "A"; // латинская А. Начальная буква обозначения видов.
............

в функции GetLabelView закомментируем существующие строки и введем новые. Функция должна выглядеть так:

        private void GetLabelView(ref char chLabel)
        {
            //switch (chLabel)
            //{
            //    case 'Й':
            //    case 'Х':
            //    case 'О':
            //        chLabel++;
            //        break;
            //    case 'Ь':
            //    case 'Ы':
            //    case 'Ъ':
            //        chLabel = 'Э';
            //        break;
            //}
            switch (chLabel)
            {
                case 'I':
                case 'O':
                    chLabel++;
                    break;
            }
        }

аналогично делаем и с функцией SetNewLabel

        private static void SetNewLabel(ref char chLabel, ref char chIndex)
        {
            chLabel++;
            //if (chLabel > 1071)
            //{
            //    chLabel = 'А'; 
            //    chIndex++;
            //}

            if (chLabel > 'Z')
            {
                chLabel = 'A'; // латинская 'A'
                chIndex++;
            }
        }
Ссылка на сообщение
Поделиться на других сайтах

Shvg, вроде всё повторил как указано, но почему то у меня вставляется только кирилица

чтобы не быть голословным измененный файл прилагаю, на всякий случай для информации,

гоняю СВ2013, ОС вин7 64

frmReplace.zip

 

может потратите своё ценное время чтобы скомпилировать макро целиком для латиницы

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

Это уже что-то интересное. Вы двигаетесь в сторону разбивки на зоны?

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

@@Michael_Mira, неа)) пока только номера листов к меткам вида. Сверху, вон Shvg код предлагал, может быть у него и рабочие варианты есть.

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

Shvg, вроде всё повторил как указано, но почему то у меня вставляется только кирилица

А перекомпилировал его? То есть запуск в VSTA был?

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

за отсутствием компетенций в этом вопросе я даже и не подумал об этом, потому как VSTA не использовал никогда

поэтому и попросил подмоги на готовое решение под ключ

 

А где этот макрос можно взять?

 

 

http://cccp3d.ru/topic/6071-sdelai-svoiu-rabotu-v-solidworks-effektivnee/page-70#entry510181

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

за отсутствием компетенций в этом вопросе я даже и не подумал об этом, потому как VSTA не использовал никогда

поэтому и попросил подмоги на готовое решение под ключ

Будем учится. :smile:

В меню SW Tools->Macro->Edit выбираем тип файла SW VSTA C# Macro и выбираем файл ReplaceLabelView.csproj. В появившейся программе VSTA выбираем Build->Build ReplaceLabelView.  Должна перекомпилироватся библиотека ReplaceLabelView.dll. Далее запускаем макрос как обычно.

 

Если не сможете, то попробуйте заменить ваши существующие файлы макроса в папке Release следующими.

 

Release.rar

 

P.S. SW2011SP5 WinXPx64. Макрос работал и на Win7x64 и SW2014SP4

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

На счет этого я и написал, что это интересно. Мой сотрудник создал чертежжжжик на 7 исполнений на 11 листах А1. Через месяц сам начал теряться, где и что искать. А как же другие?

Просто ждать 2015 версии смысла нет, ибо полгода как обновили на 2014. Ранее сидели на 2011. Так что до 2017 версии фирма обновляться не будет. :cry_1:

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

@@Michael_Mira, ну, если Shvg  поможет, сделаем и зоны  :smile: 

 

strZone_X

Там же вроде буквы должны быть? Или потом просто берем по полученному индексу букву?

 

запись позиции в моем DataGridView
 

Это зачем?

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

Допилил листы.

Если проекционный, местный вид или разрез находятся на листах отличных от листа, на котором расположен исходный вид – программа проставляет номера листов к меткам видов.

 

 http://www.streamdivision.com/prostanovka-nomerov-listov/

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

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

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

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

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

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

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

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

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

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

    • i.bel
    • Maik812



  • Сообщения

    • Shura762
      Вопрос из разряда "Достало" как сделать в Словаре ширину колонок больше ПОСТОЯННОЙ! уже устал двигать каждый раз. Это первый вопрос. Второй - при "Сброс настроек.." Словарь принимает вид из поставки, где кроются файлы для восстановления, хочу заменить и забыть. Спасибо заранее.
    • Maik812
      Хочешь не хочешь а сортировать по содержимому и искать в нем текст приходится..  Есть правильные конвертеры просто. Но вот бывает что не та кодировка или не так правильно она оформлена и не понимает. Сверху абракадабра в слове "формат" Солид 2010 кажется, а ниже пересохранен в новее версии или наоборот.. Там конвертер x2doc , он "на лету" переводит пдф в текстовик и регулярным выражением вытаскивает "содержимое" в колонку . Поиск текста в пдф тоже так же делается. А содержимое колонки ТС, можно уже одним кликом по команде в EXEL вставить.
    • MagicNight
      Добрый день! Купили фрезерный станок с ЧПУ со стойкой FANUC Series 0i-Model F Plus. Имею не большой опыт данной стойки. Привязали десять инструментов относительно стола станка (т.е стол станка Z=0) Сейчас принесли приспособление которое имеет высоту 50мм. Хотим привязать весь инструмент от приспособления. Подскажите, как это сделать быстро, чтобы не вносить изменения в корректор на каждый инструмент. Пролистал книги в электронном варианте, бегло, не нашел. А уже нужно делать заказ.
    • kkk
      Стрелки разрезов иногда "пробивают" линии разрезов, что-то еще бывает. Но это мелочи, у нас нормоконтроля нет. А вот когда закрашенные виды начинают жестко чудить, с пропаданием или перемешиванием текстур, тогда уже неприятно. Либо еще какие-глюки вылезают оформительские. Нам часто приходится дизайнерам на одобрение файлы засылать, а такие штуки несколько нервируют.
    • ID_Hacker
      Более того, у него в SET PG/PC в диагностике нельзя посмотреть доступные адреса на шине. Но для общих задач подходит. Так же мы их комуникационные интерфейсы MPI/ETHERNET берём, что бы подключать станки на Sinumerik Powerline к заводской сети для сбора данных диспетчеризации и удалённого подключения Step 7.     Здесь ищите: Александр Кудинов, Пряничников Алексей. Номера давать некультурно.     ТИА у вас просит ToolBox 18 Update 1 потому что сама ТИА 18 версии. Проект то такой версии и был? Или вы конвертировали при открытии? Файл проекта ТИА имеет расширение *.ap13, *.ap14, *.ap16, *.ap18 в зависимости от версии ТИА в которой он создан.   И ещё вариант поиска. У вас же на станке наверняка стоит Simatic IPC компьютер и TCU на пульту управления. Вы пробовали выходить на Simatic IPC в Windows и смотреть что на нём есть? Вполне может быть там установлена TIA с нужными дополнениями.
    • Guhl
      Помню из командировки в Африку вез КМки и позолоченные микрухи в баночке через Москву. На пароходе, который мы ремонтировали, старую советскую корабельную радиостанцию в лом сдали. Время было, поэтому повыкусывали. Так таможенник меня мучал минут 30. Говорит, это лом драгметалла, а я ему, что это радиодетали и маркировка на них имеется. А он стоит на своём и толдонит одно и то же. В конце концов, я ему сказал, что я ему их не оставлю и буду до конца утверждать, что это мои запчасти, хоть некоторые из них уже и не припаяешь. Отдал, зараза. А с Америки б/у оборудование несложно вывозить, насколько я понял, так как моему знакомому даже в Крым оттуда посылки доходят с б/у железками. Б/у не очень интересует их таможню. Американцам заплатить сложно, но сейчас это могут сделать так называемые "байеры". Более того на посылках со шмотками амеры вообще пишут адрес "......, Crimea, Russia" 
    • Ahito
      Невозможно проставить центра окружностей в чертежах Солида 22 и не цепляются размеры к данным окружностям. К примеру: на чертеже съемной крыши электропомещения необходимо просверлить 184 отв., из них только к 15% отверстий ставятся размеры и центра. Чтобы правильно образмерить отв., потребовалось около 3 часов. Вместо 5 мин максимум в Солиде 15.
    • davidovka
      не пользовался, проверил, creo 11 - не работает (:
    • HornedOwl
      Всем привет! Помогите найти книгу: РТМ по расчету и конструирования технологической оснастки для экструзии профильных изделий из термопластов / НПО Пластик - 1983. - 382 с.
    • Fedor
      https://metallurgicheskiy.academic.ru/2247/гипотеза_сплошности     Отказавшись от continuity  мы отказываемся и от  аппарата дифференциального и интегрального исчислений то есть от механики ... :)
×
×
  • Создать...