Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > "Пустая" команда

"Пустая" команда

Ответ
Поиск в этой теме
Непрочитано 06.05.2021, 11:22 #1
"Пустая" команда
Crotique
 
Конструктор.
 
Регистрация: 25.05.2010
Сообщений: 257

Я в экселе создаю наборы команд для отрисовки. По столбцам - команды для разных блоков или текста, по строкам - повторение для разных точек в пространстве.
Потом я эту область копирую в блокнот, сохраняю с расширением scr (см. пример) и запускаю командой _Script.
Так как у меня не в каждой ячейке есть команда (например, мне не нужно в данной точке ничего отрисовывать и в экселе там стоит пустая строка ""), в скрипте возникают разрывы.
Иногда автокад это проглатывает, а иногда спотыкается и останавливает скрипт. Каких-либо закономерностей, когда и почему он это делает, я не нашел.
Убирать разрывы вручную - не вариант, скрипты бывают по нескольку тысяч строк.

Вопрос: существует ли какая-нибудь команда, которая не делает ничего, и которую я бы ставил в пустые ячейки? Можно, конечно, рисовать какой-нибудь блок вне области чертежа (и я так делал), но это не лучший вариант.

Миниатюры
Нажмите на изображение для увеличения
Название: Скрипт.png
Просмотров: 88
Размер:	112.0 Кб
ID:	236959  

Просмотров: 5602
 
Непрочитано 06.05.2021, 11:25
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


А не лучше ли выяснить, почему ACAD останавливает выполнение? Например, на каких командах, что он ожидает - ведь все показывается в ком.строке. Читай, анализируй, повторяй.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 06.05.2021, 11:42
#3
Crotique

Конструктор.
 
Регистрация: 25.05.2010
Сообщений: 257


Ну вот прямо сейчас:

(command "_.-INSERT" "4-4" '(3997.65 195.09) 1 1 0)
(command "_.-INSERT" "Св-3" '(4001.65 195.03) 1 1.00 0) (command "_.-INSERT" "Ст4.2" '(4001.65 195.09) 1 1 0) (command "_.-INSERT" "4-4" '(4001.65 195.09) 1 1 0) (command "_.-TEXT" "4002.10,199.94" "0" "2")
(command "_.-INSERT" "Св-3" '(4005.65 195.02) 1 1.00 0) (command "_.-INSERT" "Ст4.2" '(4005.65 195.08) 1 1 0) (command "_.-INSERT" "4-4" '(4005.65 195.08) 1 1 0) (command "_.-TEXT" "4006.10,199.93" "0" "3")
(command "_.-INSERT" "Св-3" '(4009.65 195.00) 1 1.00 0) (command "_.-INSERT" "Ст4.2" '(4009.65 195.06) 1 1 0) (command "_.-INSERT" "4-4" '(4009.65 195.06) 1 1 0) (command "_.-TEXT" "4010.10,199.91" "0" "4")
(command "_.-INSERT" "Св-3" '(4013.65 194.99) 1 1.00 0) (command "_.-INSERT" "Ст4.2" '(4013.65 195.05) 1 1 0) (command "_.-INSERT" "4-4" '(4013.65 195.05) 1 1 0) (command "_.-TEXT" "4014.10,199.90" "0" "5")

Отрисовывается только первая команда. Далее пишется "Команда: 1" и затыкается.
Беру огромный кусок с этим же началом - и отрисовывается все.

(command "_.-INSERT" "4-4" '(3997.65 195.09) 1 1 0) (command "_.-INSERT" "Строчки" '(3997.65 184.67) 4.00 1 0) (command "_.-INSERT" "Разделитель" '(3997.65 184.67) 1 1 0) (command "_.-TEXT" "3997.85,157.77" "90" "ПК 39+97,65") (setvar "clayer" "ШЗЭ стойки") (command "_.-TEXT" "3997.85,164.27" "90" "23 (сущ)") (command "_.-TEXT" "3997.45,142.97" "90" "") (setvar "clayer" "ШЗЭ стойки") (command "_.-TEXT" "3997.45,151.47" "90" "X=178350,655") (command "_.-TEXT" "3998.45,151.47" "90" "Y=2173198,870") (command "_.-TEXT" "3997.85,174.17" "90" "195,12") (command "_.-TEXT" "3997.85,169.17" "90" "1,00") (command "_.-TEXT" "3997.95,149.37" "0" "4,00")
(command "_.-INSERT" "Св-3" '(4001.65 195.03) 1 1.00 0) (command "_.-INSERT" "Ст4.2" '(4001.65 195.09) 1 1 0) (command "_.-INSERT" "4-4" '(4001.65 195.09) 1 1 0) (command "_.-TEXT" "4002.10,199.94" "0" "2") (command "_.-INSERT" "Строчки" '(4001.65 184.67) 4.00 1 0) (command "_.-INSERT" "Разделитель" '(4001.65 184.67) 1 1 0) (command "_.-TEXT" "4001.85,157.77" "90" "ПК 40+01,65") (setvar "clayer" "ШЗЭ стойки") (command "_.-TEXT" "4001.85,164.27" "90" "2") (command "_.-TEXT" "4001.45,142.97" "90" "Ст4,2Ц") (setvar "clayer" "ШЗЭ стойки") (command "_.-TEXT" "4001.45,151.47" "90" "X=178353,052") (command "_.-TEXT" "4002.45,151.47" "90" "Y=2173195,668") (command "_.-TEXT" "4002.45,142.97" "90" "нет / 0") (command "_.-TEXT" "4001.85,139.17" "90" "Св-3") (command "_.-TEXT" "4001.85,174.17" "90" "195,10") (command "_.-TEXT" "4001.85,169.17" "90" "1,00") (command "_.-TEXT" "4001.95,149.37" "0" "4,00")
(command "_.-INSERT" "Св-3" '(4005.65 195.02) 1 1.00 0) (command "_.-INSERT" "Ст4.2" '(4005.65 195.08) 1 1 0) (command "_.-INSERT" "4-4" '(4005.65 195.08) 1 1 0) (command "_.-TEXT" "4006.10,199.93" "0" "3") (command "_.-INSERT" "Строчки" '(4005.65 184.67) 4.00 1 0) (command "_.-INSERT" "Разделитель" '(4005.65 184.67) 1 1 0) (setvar "clayer" "ШЗЭ стойки") (command "_.-TEXT" "4005.85,164.27" "90" "3") (command "_.-TEXT" "4005.45,142.97" "90" "Ст4,2Ц") (setvar "clayer" "НЕвидим") (command "_.-TEXT" "4005.45,151.47" "90" "X=178355,490") (command "_.-TEXT" "4006.45,151.47" "90" "Y=2173192,496") (command "_.-TEXT" "4006.45,142.97" "90" "15 / 0") (command "_.-TEXT" "4005.85,139.17" "90" "Св-3") (command "_.-TEXT" "4005.85,174.17" "90" "195,09") (command "_.-TEXT" "4005.85,169.17" "90" "1,00") (command "_.-TEXT" "4005.95,149.37" "0" "4,00")
(command "_.-INSERT" "Св-3" '(4009.65 195.00) 1 1.00 0) (command "_.-INSERT" "Ст4.2" '(4009.65 195.06) 1 1 0) (command "_.-INSERT" "4-4" '(4009.65 195.06) 1 1 0) (command "_.-TEXT" "4010.10,199.91" "0" "4") (command "_.-INSERT" "Строчки" '(4009.65 184.67) 4.00 1 0) (command "_.-INSERT" "Разделитель" '(4009.65 184.67) 1 1 0) (setvar "clayer" "ШЗЭ стойки") (command "_.-TEXT" "4009.85,164.27" "90" "4") (command "_.-TEXT" "4009.45,142.97" "90" "Ст4,2Ц") (setvar "clayer" "НЕвидим") (command "_.-TEXT" "4009.45,151.47" "90" "X=178357,928") (command "_.-TEXT" "4010.45,151.47" "90" "Y=2173189,325") (command "_.-TEXT" "4010.45,142.97" "90" "15 / 0") (command "_.-TEXT" "4009.85,139.17" "90" "Св-3") (command "_.-TEXT" "4009.85,174.17" "90" "195,07") (command "_.-TEXT" "4009.85,169.17" "90" "1,00") (command "_.-TEXT" "4009.95,149.37" "0" "4,00")
(command "_.-INSERT" "Св-3" '(4013.65 194.99) 1 1.00 0) (command "_.-INSERT" "Ст4.2" '(4013.65 195.05) 1 1 0) (command "_.-INSERT" "4-4" '(4013.65 195.05) 1 1 0) (command "_.-TEXT" "4014.10,199.90" "0" "5") (command "_.-INSERT" "Строчки" '(4013.65 184.67) 4.00 1 0) (command "_.-INSERT" "Разделитель" '(4013.65 184.67) 1 1 0) (setvar "clayer" "ШЗЭ стойки") (command "_.-TEXT" "4013.85,164.27" "90" "5") (command "_.-TEXT" "4013.45,142.97" "90" "Ст4,2Ц") (setvar "clayer" "НЕвидим") (command "_.-TEXT" "4013.45,151.47" "90" "X=178360,366") (command "_.-TEXT" "4014.45,151.47" "90" "Y=2173186,154") (command "_.-TEXT" "4014.45,142.97" "90" "15 / 0") (command "_.-TEXT" "4013.85,139.17" "90" "Св-3") (command "_.-TEXT" "4013.85,174.17" "90" "195,06") (command "_.-TEXT" "4013.85,169.17" "90" "1,00") (command "_.-TEXT" "4013.95,149.37" "0" "4,00")
(command "_.-INSERT" "Св-3" '(4017.65 194.97) 1 1.00 0) (command "_.-INSERT" "Ст4.2" '(4017.65 195.03) 1 1 0) (command "_.-INSERT" "4-4" '(4017.65 195.03) 1 1 0) (command "_.-TEXT" "4018.10,199.88" "0" "6") (command "_.-INSERT" "Строчки" '(4017.65 184.67) 4.00 1 0) (command "_.-INSERT" "Разделитель" '(4017.65 184.67) 1 1 0) (setvar "clayer" "ШЗЭ стойки") (command "_.-TEXT" "4017.85,164.27" "90" "6") (command "_.-TEXT" "4017.45,142.97" "90" "Ст4,2Ц") (setvar "clayer" "НЕвидим") (command "_.-TEXT" "4017.45,151.47" "90" "X=178362,804") (command "_.-TEXT" "4018.45,151.47" "90" "Y=2173182,983") (command "_.-TEXT" "4018.45,142.97" "90" "17 / 0") (command "_.-TEXT" "4017.85,139.17" "90" "Св-3") (command "_.-TEXT" "4017.85,174.17" "90" "195,04") (command "_.-TEXT" "4017.85,169.17" "90" "1,00") (command "_.-TEXT" "4017.95,149.37" "0" "4,00")
Crotique вне форума  
 
Непрочитано 06.05.2021, 12:00
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


В скрипте пробел = повтор последней команды. Enter - то же самое (насколько я помню).
У тебя первая же строка в конце имеет пробел, проверяй.
P.S. здрасьте, грабли с указанием точек вставки. И там же - командное создание текстов. Попробуй ради приколу в текущем текстовом стиле поменять высоту по умолчанию на 0.

----- добавлено через ~3 мин. -----
И вот еще. Это не scr, скорее, а какой-то имитатор лиспа. Нормальный скрипт выглядел бы примерно так (если я правильно вообще помню эту штуку):
Код:
[Выделить все]
_.-INSERT
4-4
3997.65,195.09
1
1
0
_.-INSERT
Св-3
4001.65,195.03
1
1
0
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.05.2021, 12:07
#5
Дмитррр

НЛО
 
Регистрация: 09.07.2007
Тутошние мы.
Сообщений: 6,103


И дополнение к энтеру. Просто механически сравниваю
Цитата:
Сообщение от Crotique Посмотреть сообщение
(command "_.-INSERT" "4-4" '(3997.65 195.09) 1 1 0) (command "_.-INSERT" "Св-3" '(4001.65 195.03) 1 1.00 0)
Цитата:
Сообщение от Crotique Посмотреть сообщение
(command "_.-INSERT" "4-4" '(3997.65 195.09) 1 1 0) (command "_.-INSERT" "Строчки" '(3997.65 184.67) 4.00 1 0)
Понятия не имею с этим связано или нет, но разница есть. Я не столько о значениях, сколько о формате. Если не в этом месте, то в другом это может сыграть роль.

----- добавлено через ~6 мин. -----
Цитата:
Сообщение от Crotique Посмотреть сообщение
существует ли какая-нибудь команда, которая не делает ничего, и которую я бы ставил в пустые ячейки?
Зум какой-нибудь.
Дмитррр вне форума  
 
Автор темы   Непрочитано 06.05.2021, 12:18
#6
Crotique

Конструктор.
 
Регистрация: 25.05.2010
Сообщений: 257


Цитата:
Сообщение от Дмитррр Посмотреть сообщение
И дополнение к энтеру. Просто механически сравниваю
Нет, это, ЕМНИП, масштабы по х и у.
С самими командами ни малейших проблем нет. Речь идет, подчеркиваю, только о прерывании скрипта.
Когда я копирую из экселя в блокнот, команды, похоже, разделяются символами табуляции, причем их может быть несколько, в зависимости от количества пустых ячеек.

Во вложении - архив со скриптом (напрямую приложить текстовый файл движок не позволяет).
Вложения
Тип файла: rar 1.rar (1.8 Кб, 4 просмотров)
Crotique вне форума  
 
Непрочитано 06.05.2021, 12:31
#7
Oleg T


 
Регистрация: 27.12.2011
Сообщений: 1,458


Это действительно не скрипт в чистом виде. Скрипты и LT работают, а этот не будет.
Скрипт в строчку:
Код:
[Выделить все]
_.-INSERT 4-4 3997.65 195.09 1 1 0
Никаких скобок и command
Тут про зум подсказали, может, и реген подойдет
Но я бы лучше раскидал однотипные команды по разным листам и файлам, чтобы ничего лишнего не было
Oleg T вне форума  
 
Непрочитано 06.05.2021, 12:39
#8
Oleg T


 
Регистрация: 27.12.2011
Сообщений: 1,458


Цитата:
Сообщение от Crotique Посмотреть сообщение
Когда я копирую из экселя в блокнот, команды, похоже, разделяются символами табуляции, причем их может быть несколько, в зависимости от количества пустых ячеек.
Это точно. Автозамена работает. Последовательно заменяем 5 - 4 - 3 - 2 символа табуляции на один. Для наглядности лучше в редакторе типа Notepad ++, а не в блокноте.
Первый символ в файле тоже лишний
Миниатюры
Нажмите на изображение для увеличения
Название: Сохраненное изображение 2021-5-6_12-38-7.903.jpg
Просмотров: 33
Размер:	97.2 Кб
ID:	236963  
Вложения
Тип файла: zip 1.zip (2.1 Кб, 2 просмотров)
Oleg T вне форума  
 
Автор темы   Непрочитано 06.05.2021, 12:42
#9
Crotique

Конструктор.
 
Регистрация: 25.05.2010
Сообщений: 257


Цитата:
Сообщение от Oleg T Посмотреть сообщение
Это действительно не скрипт в чистом виде. Скрипты и LT работают, а этот не будет.
Скрипт в строчку:
Код:
[Выделить все]
_.-INSERT 4-4 3997.65 195.09 1 1 0
Никаких скобок и command
Тут про зум подсказали, может, и реген подойдет
Но я бы лучше раскидал однотипные команды по разным листам и файлам, чтобы ничего лишнего не было
Меня интересует конкретный вопрос - команда, которая ничего не делает и не жрет время - а не особенности синтаксиса.
Не надо объяснять, почему это не должно работать. Все это работает уже 3 года (и научили этому, кстати, здесь же). Во вложении - пример, где все, кроме рамки, нарисовано вот этой самой штукой.
Вложения
Тип файла: pdf Страницы из 2019-699-Р-ШЭ с подписями 2020-09-07.pdf (127.2 Кб, 22 просмотров)
Crotique вне форума  
 
Непрочитано 06.05.2021, 12:46
#10
Oleg T


 
Регистрация: 27.12.2011
Сообщений: 1,458


Цитата:
Сообщение от Crotique Посмотреть сообщение
Все это работает уже 3 года (и научили этому, кстати, здесь же). Во вложении - пример, где все, кроме рамки, нарисовано вот этой самой штукой.
Я же не сказал, что это не должно работать. В Автокад ЛТ не будет просто (как частный случай).
Автозаменой попробуйте лишнюю табуляцию почистить, как я выше написал и файл почищенный приложил. Может, и команда не понадобится (лично я такой не знаю).

Последний раз редактировалось Oleg T, 06.05.2021 в 12:52.
Oleg T вне форума  
 
Автор темы   Непрочитано 06.05.2021, 13:00
#11
Crotique

Конструктор.
 
Регистрация: 25.05.2010
Сообщений: 257


Цитата:
Сообщение от Oleg T Посмотреть сообщение
Я же не сказал, что это не должно работать. В Автокад ЛТ не будет просто (как частный случай).
Автозаменой попробуйте лишнюю табуляцию почистить, как я выше написал и файл почищенный приложил. Может, и команда не понадобится (лично я такой не знаю).
Спасибо. Не очень хочется делать дополнительное действие. Скорее всего, буду в эксель вставлять текстовую константу с какой-нибудь простой командой (ставить точку в коорд. 0,0 или типа того).
(command "_.-TEXT" "0.00,0.00" "0" ".")
Crotique вне форума  
 
Непрочитано 06.05.2021, 13:03
1 | #12
Oleg T


 
Регистрация: 27.12.2011
Сообщений: 1,458


Цитата:
Сообщение от Crotique Посмотреть сообщение
Спасибо. Не очень хочется делать дополнительное действие. Скорее всего, буду в эксель вставлять текстовую константу с какой-нибудь простой командой (ставить точку в коорд. 0,0 или типа того).
(command "_.-TEXT" "0.00,0.00" "0" ".")
Раз здесь задействован лисп, то, может, лучше не пользоваться интерпретатором команд, а вставлять какую-нибудь функцию.
Например, арифметическое выражение
(+ 1 1)
Или функцию (princ)
Быстрее работать должно, чем с command
Oleg T вне форума  
 
Непрочитано 06.05.2021, 13:10
#13
gumel


 
Регистрация: 20.04.2011
Сообщений: 402


Да, неожиданный синтаксис для script-файла ))

Однажды тоже решал задачу, где аналогичным образом в экселе готовил команду для автокада. Часть значений в ячейках надо было игнорировать. Например в ячейках с E1 по E10 - вычисляются координаты, по которым нужно построить полилинию. Но если в ячейке с координатами вычислялось " 0,0" (по каким-то причинам), то эту точку нужно игнорировать и не включать в полилинию. В общем запись такого вида:

=ПОДСТАВИТЬ(СЦЕПИТЬ("_PLINE";E1;E2;E3;E4;E5;E6;E7;E8;E9;E10;" _C");" 0,0";"")

помогает исключить лишние точки

Также в экселе есть ряд других функций для работы со строками, плюс несколько логических.
gumel вне форума  
 
Автор темы   Непрочитано 06.05.2021, 13:11
#14
Crotique

Конструктор.
 
Регистрация: 25.05.2010
Сообщений: 257


Цитата:
Сообщение от Oleg T Посмотреть сообщение
Или функцию (princ)
Быстрее работать должно, чем с command
Да, похоже, это как раз то, что нужно. Попробую, спасибо.

UPD: В пустые ячейки подставляется (princ), разрывов нет, все прекрасно работает. Спасибо!

Последний раз редактировалось Crotique, 06.05.2021 в 13:49.
Crotique вне форума  
 
Непрочитано 21.06.2021, 15:57
#15
OlVish

геодезист
 
Регистрация: 28.07.2013
SPb
Сообщений: 103


Цитата:
Меня интересует конкретный вопрос - команда, которая ничего не делает и не жрет время - а не особенности синтаксиса.
escape - ^c (^c^c) - выход-сброс команды - Ctrl+c
__________________
Создание файлов форм и шрифтов (shx) http://dwg.ru/board/32231
OlVish вне форума  
 
Непрочитано 28.07.2021, 09:38
#16
Pilot

Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,268


Цитата:
Сообщение от Crotique Посмотреть сообщение
... я эту область копирую в блокнот ...
Если я правильно понял, требуется убрать лишние двойные пробелы.
Коли используется блокнот, то в нем: найти все двойные пробелы и заменить на одинарные.
Так несколько раз, пока двойные не перестанут находиться.
Pilot вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > "Пустая" команда

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пакетная печать множества рамок (форматов) из пространства модели. maratovich AutoCAD 410 23.08.2023 16:17
Команда "растянуть" для видового экрана на листе iKrek AutoCAD 2 27.09.2019 12:02
LISP. Команда apropos - поиск имен функций и переменных rebus Готовые программы 0 24.03.2018 17:39
Сбой всех команд Acad2018. d.mOnII AutoCAD 10 30.08.2017 23:26
В файле acad.pgp не назначается команда на букву "О" и не срабатывает команда "Разорвать в точке" Вася завод Программирование 2 15.12.2014 23:46