Перейти к содержанию

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

На хитрых болтах - есть!

Есть конечно, я не спорю же.

И вообще, я уже не про толщину текста. Просто используя разные инструменты, в том числе "Универсальный маркер" можно более гибко настраивать среду под себя.

 

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

:

http://www.youtube.com/watch?v=98hx7lANoNs&list=PL1MQqrS2qjWOBqoetoe8hgJauZdVT-9sK

на

Ссылка на сообщение
Поделиться на другие сайты
  • Ответов 927
  • Дата создания
  • Последний ответ

Лучшие авторы в теме

Лучшие авторы в теме

Популярные посты

function OnConnect

1. для ком строки пользуем лисп (defun C:т100 () (command "spStdSelected" "4E2FDA62C44D46D6") (princ); труба по ГОСТ 8734-75 ) ID можно посмотреть в мастере объектов или в ком строке после

Часто задают вопросы как заполнять список в comboBox из скрипта. Как правило на вопрос: "Зачем нужно именно так" - ответа нет, но вот один пользователь захотел "Управлять содержимым списка" в зависимо

Изображения в теме

Ну я с иронией же :) Конечно, графике - графиково, аннотации - текстово :)

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

Ну я с иронией же :) Конечно, графике - графиково, аннотации - текстово :)

 

И я тож тогда поиронизирую. :) Используя пресловутую (разумеется, некорректную :)) автомобильную параллель: "хотите слушать музыку в машине - возите с собой музыкальный центр. Магнитола в салоне - это так, тестовая штука, проверять, правильно ли антенна ловит радио". :)

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

Ну а вообще, работает - и чУдно.

А если вдруг можно быстро и недорого добавить возможность назначать тексту тип линии и чуть открорректировать его работу в дальнейших версиях - было б здорово. А нет - ну извернёмся как-нить. Не в первый раз. ^_^

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

В качестве бонуса и отмазки за текст:

http://www.youtube.com/watch?v=YEeST3XlYu8&t=10s&list=PLxzNmJ3Maam54dScS5qUcT_yRZ70Uvb1H&index=26

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

А можно задавать параметрическому объекту количество и нумерацию ручек не конкретным числом, а как-то в общем виде..? плавающим, в зависимости от кол-ва циклов внутри объекта, к примеру..?

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

думаю, что нет.

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

function SetGripPoint {	//ручки
NGrip=4;
pntGrip0=pntOrigin;
pntGrip1=pntOrigin-vecDirection*DNf/2;
pntGrip2=pntOrigin+vecPlane*DNf/2;
pntGrip3=pntAlfa;
}

но по условию можно изменять реакцию объекта на ручку

например

function OnMoveGripPoint {   //реакция на изменение ручек
if (NMovingGrip==1){
 vecXOld=vecDirection;
 vecDirection=-(pntGrip1-pntGrip0);
 restoreBasis(vecXOld,vecPlane,vecDirection);
} else if (NMovingGrip==2 && (lViewType == VBACK || lViewType == VFRONT)){ //если фронт или сзади, то зеркалируем
					  //относительно vecDirection
 vecPlane=-vecPlane ;	   //зеркалируем относительно vecDirection
} else if (NMovingGrip==2 && (lViewType != VBACK || lViewType != VFRONT)){ //просто крутим весь объект
 vecPlane=(pntGrip2-pntGrip0);
} else if (NMovingGrip==3 & (lViewType == VBACK || lViewType == VFRONT)){
 Alfa=anglePi(vecDirection, (pntGrip3-pntGrip0))+45; //меняем угол отвода
 AlfaChanged();
} else {
 pntOrigin=pntGrip0;
}
}

Отвод ГОСТ 17375-2001.zip

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

Интуитивно тоже догадываюсь, что нет, но душа просит чего-то типа:

 

function SetGripPoint { //ручки

NGrip=4+N; // где N - уже имеющаяся переменная, привязанная к циклу

pntGrip0=pntOrigin;

pntGrip1=pntOrigin-vecDirection*DNf/2;

pntGrip2=pntOrigin+vecPlane*DNf/2;

pntGrip3=pntAlfa;

pntGrip(3+cicle(уловно-всё-размеется-N))=блаблабла тож чё-то циклическое;

}

Если кол-во ручек в реальном времени подчиняется логическим условиям, то что по идее мешает ему подчиняться количественным значениям переменных? Механика-то примерно та же...Вопрос, могёт ли это программа... Ну, ждём авторитетного ответа.

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

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

Так что вопрос остаётся, но становится чисто академическим.

 

Ред: Не диапазоне, а кол-ве повторений.

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

но одно маленькое НО

SetGripPoint вызывается каждый раз при изменении свойств объекта извне (от другого объекта, через панель свойств или форму объекта)

upd Не вызывается при перемещении и копировании средствами АК (как в нано незнаю)

при воздействии на ручки SetGripPoint то же вызывается, но после OnMoveGripPoint

 

проверить легко

достаточно в соответствующие секции запихнуть ShowValue ("SetGripPoint ",); и ShowValue ("OnMoveGripPoint ",); и посмотреть в IDM, что за чем и когда отрабатывает.

------------------------------

логично было предположить, что если в SetGripPoint запихнуть условие от чего-то (или цикл), то можно было бы изменять количество и расположение ручек (по условию), но не забывать, в OnMoveGripPoint учитывать, что количество ручек изменилось.

не проверял, но коль метод вызывается каждый раз, должно сработать )))))

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

и когда конь превращается в реального, выясняется, что все можно было сделать намного проще штатными методами.

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

проверил, меняет положение ручки в зависимости от lViewType

количество ручек то же можно изменять :) :) академически :)

function SetGripPoint {    //ручки
NGrip=4;
ShowValue ("SetGripPoint ",);
if (lViewType != VFRONT){
pntGrip0=pntOrigin-vecDirection*500;
} else {
pntGrip0=pntOrigin;
}
pntGrip1=pntOrigin-vecDirection*DNf/2;
pntGrip2=pntOrigin+vecPlane*DNf/2;
pntGrip3=pntAlfa;
}

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

Вопрос из личной переписки, думаю многим будет тоже полезно:

Как скрыть линии в объекте?

Line(node2,node0,TypeLine,HideLine);

 

 

http://www.youtube.com/watch?v=czMp_t4uTXk&t=3s&list=PLxzNmJ3Maam67e9mrRIXhkdP-9e0VY9hG&index=6

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

TypeLine принимает значения

1 Сплошная толстая основная линия Сплошная

2 Сплошная тонкая линия Сплошная

3 Волнистая линия ГОСТ 2.303 3

4 Штрихпунктирная тонкая(осевая) линия ГОСТ 2.303 5

5 Штриховая линия ГОСТ 2.303 4

6 Штрихпунктирная утолщенная линия ГОСТ 2.303 6

7 Разомкнутая линия Сплошная

8 Сплошная тонкая с изломами линия ГОСТ 2.303 8

9 Штрихпунктирная с двумя точками тонкая линия ГОСТ 2.303 9

0- по объекту, т.е. тип толщина и цвет по слою или из свойств

-----------------

HideLine-0 (невидима) или 1 (видима)

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

Мож, конечно, детсадовский вопрос, но можно ли к конкретному объекту из базы привязать команду-кнопку-менюшку..?

А то приходится искать их в дереве базы долго, да и в на "Предыдущую" они не реагируют... А было б удобно...

Нана6, если что.

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

Мож, конечно, детсадовский вопрос, но можно ли к конкретному объекту из базы привязать команду-кнопку-менюшку..?

А то приходится искать их в дереве базы долго, да и в на "Предыдущую" они не реагируют... А было б удобно...

Нана6, если что.

 

Поддерживаю. Сам искал способ, вроде нашёл как в АК с помощью простого макроса сделать можно было, но вот способа для нано СПДС 6.0 так и не нашёл

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

 

А можно чуть больше информации, если не трудно..? Я смотрю, и нифига не понимаю, что и зачем вы делаете..? Возможно, дело в том, что пример дан по Нане 8, в НанеСПДС6 (блин, забыл указать, что это СПДС :unsure: ) у таблиц нет переменной "Командная строка" и команду "^C^C_stdselected" командная строка тоже не понимает.

 

Что я уяснил, так это про наличие идентификатора у каждого из объектов (который присваивается раз и навсегда, так ведь?), за который для наших целей можно зацепиться. Вопрос в том, КАК это сделать..?

 

Т.е. на выходе хочется следующее: вбить в командной строке свою формулировку ("хочуобъект", а не "^C^C_stdselected ИДЕНТИФИКАТОР", а то это непродуктивно...) и получить вставку завязанного на эту команду объекта.

 

Примерный способ описан тут: https://www.nanocad....ticles/4644588/

 

<?xml version="1.0" encoding="utf-8"?>

<package>

<command name="BlueCar" weight="30" cmdtype="1">

<script lang="VBS"><![CDATA[

Dim ms

Dim ut

Dim ptInsert

Set ms = ThisDrawing.ModelSpace

Set ut = ThisDrawing.Utility

ptInsert = ut.GetPoint("0,0,0", "Укажите точку вставки")

ms.InsertBlock ptInsert,"C:\MyBlocks\BlueCar.dwg",1,1,1,0

]]></script>

</command>

<command name="GreenCar" weight="30" cmdtype="1">

<script lang="VBS"><![CDATA[

Dim ms

Dim ut

Dim ptInsert

Set ms = ThisDrawing.ModelSpace

Set ut = ThisDrawing.Utility

ptInsert = ut.GetPoint("0,0,0", "Укажите точку вставки")

ms.InsertBlock ptInsert,"C:\MyBlocks\GreenCar.dwg",1,1,1,0

]]></script>

</command>

</package>

Механика: скрипт на каждую команду --- приложение в автозагрузку. Это было бы технически удобно, т.к. позволило бы быстро и организованно обновлять список таких команд на всех компах.

У этого способа есть большие минусы: необходимость сохранять отдельными двг-файлами каждый объект, обновлять их потом и прочая ненужная возня + непонятно, как будут вести себя объекты при вставке (с блоками-то всё просто, а у объектов есть как минимум OnConnect).

Т.е. было бы классно из такого скрипта обратиться прямо к базе, вытащить объект по идентификатору и вставить. Вопрос в том, как?

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

А можно чуть больше информации, если не трудно..?

Поздно было, ограничился мультиком

Нане СПДС6

В шестом нано СПДС нет палитр инструментов. Так сделать не получится

 

Т.е. было бы классно из такого скрипта обратиться прямо к базе, вытащить объект по идентификатору и вставить. Вопрос в том, как?

группы не помогут частично решить проблему? Я понимаю, что там все наоборот. Объект коннектится к уже вставленному объекту

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

группы не помогут частично решить проблему? Я понимаю, что там все наоборот. Объект коннектится к уже вставленному объекту

 

Да основная хотелка-то как раз в командной строке, чтоб их с клавиатуры вызывать.

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

1. для ком строки пользуем лисп

(defun C:т100 ()
 (command "spStdSelected" "4E2FDA62C44D46D6")
 (princ); труба по ГОСТ 8734-75
)  

ID можно посмотреть в мастере объектов или в ком строке после вызова объекта.

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

-----

2. кнопка или пункт меню

цепляем такой код для той же трубы

^C^CspStdSelected 4E2FDA62C44D46D6

----------

3. из броузера объектов

3.1. создаем в нем каталог с подкаталогами

3.2. в броузере копируем интересующие объекты и вставляем в созданные подкаталоги (это будут не объекты , а ссылки на них)

3.3 по ПКМ на каталоге "добавить закладку-броузер".

-------------

4.средствами VBS or VBA or VB

цепляемся к McCOM

создаем объект

подгружаем его из базы по ID

вставляем на чертеж

PS не проверял будет ли работать OnConnect

-----------------

PPS понятия не имею будут ли п.п. 1, 2 работать в нанеСПДС6 (они зависят от возможностей платформы)

п.п. 3,4 от платформы не зависят, используется только функционал СПДС

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

PPS понятия не имею будут ли п.п. 1, 2 работать в нанеСПДС6 (они зависят от возможностей платформы)

п.п. 3,4 от платформы не зависят, используется только функционал СПДС

 

1-ый работает =)

2-ой - вроде на нано СПДС 6 нету способа добавить кнопку со своим макросом. Хотя опять же, может я просто плохо искал) Есть что-то похожее на данную функцию, но оно выглядит как заготовка на будущую версию :D

post-65588-0-76565000-1511336475.png

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

но оно выглядит как заготовка на будущую версию :D

 

оно так уже 5 лет выглядит...

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

теперь так )))

 

 

post-64306-0-08939100-1511339231.png

 

 

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

но оно выглядит как заготовка на будущую версию :D

оно так уже 5 лет выглядит...

Ну а чего не так. Давно же работает?

http://www.youtube.com/watch?v=wjOMGmiOua8

 

Только добавить (если объект БД)

 

2. кнопка или пункт меню

цепляем такой код для той же трубы

^C^CspStdSelected 4E2FDA62C44D46D6

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

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

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

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

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

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

Загрузка...
  • Расскажите друзьям

    Нравится Официальный форум компании Нанософт? Расскажите друзьям!

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