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

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

Ну, при желании его всегда можно удалить или просто убрать "непечатный слой" с глаз долой. А вообще, у этого лишнего элемента есть достаточно большой функционал:

Например:

  • Перенести всю группу целиком (не выбирая объекты)
  • Скопировать группу
  • Добавить / Удалить объекты группы

Не стоит оценивать функционал групп по названию :-)

 

 

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

Про непечатный слой - разумеется, можно, но это лишние операции, а если можно обойтись без них, то...? =)

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

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

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

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

function OnConnect

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

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

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

Всем здравствуйте. Я начинающий пользователь по разработке своих параметрических объектов в СПДС в Autocad. Что-то уже получается на основе выложенных тут объектов и разборе скриптов.

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

Связь новая.zip

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

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

Да вроде ничего там необычного не должно быть.

Посмотрите вот в это примере

Последовательный выбор по 4-м направлениям и ручка поворота.zip

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

Вот такая вот в итоге получилась красота. Мож кому пригодится.

 

ДОП: с "sptblprep", "spregenobj" и "sprefshow", повешенными на команды и кнопки, просто огонь получается. :wub:

Объемы ЗМ.7z

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

Да вроде ничего там необычного не должно быть.

Посмотрите вот в это примере

Я извиняюсь. Просмотрел весь скрипт. Пробовал изменять в секции OnMoveGripPoint в своём объекте (по вашему примеру), но так и не получилось ничего. MCAD направьте пожалуйста на правильный путь. Может быть я не в той секции что-то прописываю или же в геометрии распознавания должно быть что-то добавлено :(

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

Я извиняюсь. Просмотрел весь скрипт. Пробовал изменять в секции OnMoveGripPoint в своём объекте (по вашему примеру), но так и не получилось ничего. MCAD направьте пожалуйста на правильный путь. Может быть я не в той секции что-то прописываю или же в геометрии распознавания должно быть что-то добавлено :(

 

Посмотрел ваш объект. Загрузил себе - потянул за ручку - да, перемещается не только по горизонтали. Залез в скрипт, начал что-то там своё писать, потом посмотрел ,что написано у вас - вроде всё правильно. Удалил своё, обновил ваш объект - работает как надо - перемещает только по горизонтали, куда бы ручку не тянул.

Удалил его из базы, загрузил повторно - всё работает хорошо.

Чёт странности. Скрип у вас правильный, вроде как)

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

Начал делать пример с "Универсальным маркером" , для исключения необходимости ставить дополнительные выноски. И наткнулся, что площадь считается у вас "Под стеной" :-( Так и должно быть?

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

 

ДОП: с "sptblprep", "spregenobj" и "sprefshow", повешенными на команды и кнопки, просто огонь получается. :wub:/>
;-(
Ссылка на сообщение
Поделиться на другие сайты
Вот такая вот в итоге получилась

Начал делать пример с "Универсальным маркером" , для исключения необходимости ставить дополнительные выноски. И наткнулся, что площадь считается у вас "Под стеной" :-( Так и должно быть?

 

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

 

Про аналог площади - была такая мысль, но с площадью по внутренней точке у нас есть большая трудность периодически (нана весьма рандомно либо её не берет, либо берет не ту, рисует какие-то невидимые глазу фантомные контуры и т.д.), а отредактировать границы площади, полученной таким способом, за ручки потом нельзя. Поэтому и используем проверенные стандартные элементы. Хотя, как дополнительный элемент я её, пожалуй, действительно сделаю. местами может быть весьма удобно.

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

Посмотрел ваш объект. Загрузил себе - потянул за ручку - да, перемещается не только по горизонтали. Залез в скрипт, начал что-то там своё писать, потом посмотрел ,что написано у вас - вроде всё правильно. Удалил своё, обновил ваш объект - работает как надо - перемещает только по горизонтали, куда бы ручку не тянул.

Удалил его из базы, загрузил повторно - всё работает хорошо.

Чёт странности. Скрип у вас правильный, вроде как)

А могу я вас попросить этот (мой) объект, который заработал экспортнуть в mcd и выложить здесь я попробую загрузить его в базу. С моим объектом пока так и не заработало - удалял из базы и снова загружал - изменений нет :(

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

А могу я вас попросить этот (мой) объект, который заработал экспортнуть в mcd и выложить здесь я попробую загрузить его в базу. С моим объектом пока так и не заработало - удалял из базы и снова загружал - изменений нет :(

 

После повторного просмотра, вроде нашёл косяк)

if (NMovingGrip == 1){
//  rL = vecLen(pntGrip0 - pntGrip1);
rL = cos(angleTwoPi(vecDirection, pntGrip1 - pntGrip0))*vecLen(pntGrip0 - pntGrip1);
//  rL = rL + ((OXPlane - pntGrip1) - (rL));
rL = max (rSH; int (rL/5+0.5)*5);
//  rSM = (rL-(int(rL/rSH)*rSH))/2;
n = 1 + max(1,int(rL/rSH);
vecDirection = pntGrip1 - pntGrip0;

 

Удалите vecDirection = pntGrip1 - pntGrip0, должно заработать)

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

Было:

 

if (NMovingGrip == 1){
//  rL = vecLen(pntGrip0 - pntGrip1);
//  rL = cos(angleTwoPi(vecDirection, pntGrip1 - pntGrip0))*vecLen(pntGrip0 - pntGrip1); // Тут
rL = OXPlane - pntGrip1;// Вправо
//  rL = rL + ((OXPlane - pntGrip1) - (rL));
 rL = max (rSH; int (rL/5+0.5)*5);
//  rSM = (rL-(int(rL/rSH)*rSH))/2;
 n = 1 + max(1,int(rL/rSH);
 vecDirection = pntGrip1 - pntGrip0;

}

Стало:

if (NMovingGrip == 1){
rL = pntGrip1 - pntGrip0;
rL = OXPlane - pntGrip1;// Вправо
rL = max (rSH; int (rL/5+0.5)*5);
n = 1 + max(1,int(rL/rSH);


}

Test.zip

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

Подскажите, как правильно работать с оператором else в скрипте?

 

Что хочу сделать:

Блокировать редактирование определённого бокса в форме, при выборе исполнений объекта отличающихся от заданных.

 

Как решаю:

Пишу пользовательскую функцию

 

Function FormEdit {
if(strDesignName == "Implementation1")||
(strDesignName == "Implementation2") {Form.editbox255.Enabled = TRUE};
else {Form.editbox255.Enabled = FALSE};
};

 

Помещаю её в OnDialogChanged

 

function OnDialogChanged
{
FormEdit ();
};

 

Почему не работает?

Как я понимаю, оператор else должен срабатывать, если оператор if перед ним ложен.

 

При этом, если я заменю

else {Form.editbox255.Enabled = FALSE};

На условное

if(strDesignName != "Implementation1") {Form.editbox255.Enabled = FALSE};

то во время выбора исполнения объекта, бокс блокируется, если выбрано какое-то другое исполнение, акромясь Implementation1

 

UPD. Знаю, что решается мой случай просто. Если перед If'ами поставить Form.editbox255.Enabled = FALSE; и убрать else в принципе.

Но хотелось бы знать, как правильно работать с else)

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

синтаксис млин ;

пробуй так (не проверял)

Function FormEdit {
 if((strDesignName == "Implementation1")||(strDesignName == "Implementation2")) {
  Form.editbox255.Enabled = TRUE;
 } else {
 Form.editbox255.Enabled = FALSE;
 }
}

после фигурной скобки не надо ; это конец строки-выражения

ну и выражение

if (условие)

upd он у тебя проверяет первое условие в скобках (strDesignName == "Implementation1")

а второе после И тупо не видит )))

не жалейте скобок)))

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

синтаксис млин ;

после фигурной скобки не надо ; это конец строки-выражения

Угу, в этом и была проблема, программированием никогда не занимался, по сути, только начинаю что-то чуть по чуть изучать)

ну и выражение

if (условие)

Ага, у себя это поправил, а в сообщение на форуме забыл)

 

Спасибо!)

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

Не подскажете, можно где-нить дёрнуть пример lsp-скрипта, который заменяет в файле слой А на слой Б...? Т.е. не переименовывает слой А, а перебрасывает объекты из А в Б, предварительно, если надо, этот самый Б создав, а А в последствии удалив..?

 

АПД: или просто примеры подобных операций (глядишь и сам сращу в один).

АПД2: и кстати, нигде на форуме у нас не собрана (ну а вдруг) коллекция лсп-скриптов пользовательских для изучения..?

АПД3: или хоть сколько-то базовой инструкции для чайников, с чего начать.

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

Не подскажете, можно где-нить дёрнуть пример lsp-скрипта, который заменяет в файле слой А на слой Б...? Т.е. не переименовывает слой А, а перебрасывает объекты из А в Б, предварительно, если надо, этот самый Б создав, а А в последствии удалив..?

 

АПД: или просто примеры подобных операций (глядишь и сам сращу в один).

АПД2: и кстати, нигде на форуме у нас не собрана (ну а вдруг) коллекция лсп-скриптов пользовательских для изучения..?

 

А чем не подходит функция стандартная нано удаления слоя с перемещением всех объектов на выбраный слой?

Лиспы под нано есть где-то на форуме, но их там вроде не так и много)

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

Хочется сделать это принудительно. Т.е. чтобы при открытии нанокада+файла, автоматом запускался скрипт очистки. Не у себя на компе, а на всех.

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

нормоконтроль будет?

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

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

Да, правильно. Но и площадь должна браться именно так же. И так и так нужно это учитывать

нана весьма рандомно либо её не берет, либо берет не ту, рисует какие-то невидимые глазу фантомные контуры и т.д.

А вот про это можно поподробнее. Желательно с примером :-(

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

Mитька, делай тему тут http://forum.nanocad.ru/index.php?showforum=87 если хочешь, здесь это оффтоп(((

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

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

Да, правильно. Но и площадь должна браться именно так же. И так и так нужно это учитывать

нана весьма рандомно либо её не берет, либо берет не ту, рисует какие-то невидимые глазу фантомные контуры и т.д.

А вот про это можно поподробнее. Желательно с примером :-(

 

Перепроверил. На площади я пожалуй, зря ругаюсь. Они берут контуры более-менее корректно (кроме разве что того что учитывают скрытые объекты, что в принципе тоже легко обходится слоями при желании). Единственный минус - если выбрать площадь (или полную площадь) по внутренней точке, часто приходится много раз тыкать внутрь контура, т.к. он её далеко не 1 первого раза находит. С записьювидео у меня тут трабблы вечные, потому пруфа не будет. =(

 

нана весьма рандомно либо её не берет, либо берет не ту, рисует какие-то невидимые глазу фантомные контуры и т.д. - это целиком и полностью касается штриховок. Вот они ведут себя мерзко (формат такой: нарисуйте круг, разделите его линией на 1 половины, удалите линию и заштрихуйте круг - заштрихуется только половина круга так, как будто линия ещё там). А на загруженных чертежах, где всё по 100 раз туда-сюда перемещалось штриховать по внутренней точки вообще мертвяк. Начинается "Поиск контура", который может несколько минут висеть, а потом найдётся мельчайший его кусочек, т.к. см. выше... Не знаю, откуда такое растёт, но у нас прям повсеместное явление. Возможно таскается из файла в файл с чем-то, мож глюк платформы.

Но если скажете, что "ни у кого такого никогда не было", то я задумаюсь, пожалуй...

 

А если возвращаться к доп маркеру площади, то делать её таким способом - не наш вариант, т.к. её НЕ ПРОВЕРИШЬ. Если её делать, то вязать не на фактическую площадь некой зоны, а на значение с СПДС-площади (а саму СПДС площадь пихать в невидимые слои). Связь проверяется легко и контур площади тоже.

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

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

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

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

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

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

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

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

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

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

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

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