Создание набора с помощью ssget из примитива *TEXT, содержащего любое количество цифр
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание набора с помощью ssget из примитива *TEXT, содержащего любое количество цифр

Создание набора с помощью ssget из примитива *TEXT, содержащего любое количество цифр

Ответ
Поиск в этой теме
Непрочитано 15.02.2011, 10:16 #1
Создание набора с помощью ssget из примитива *TEXT, содержащего любое количество цифр
Nitrogenium
 
инженер
 
Санкт-Петербург
Регистрация: 02.03.2010
Сообщений: 69

Собственно, вопрос ясен из заголовка - надо создать набор из примитивов TEXT или MTEXT, содержащего такой текст:
"ПК "любое количество цифр"+"две цифры,точка,две цифры, используя ssget
Например вот такой текст:
ПК 2+50.00
ПК 45+58.45
ПК 120+84.65
Написал вот так: (ssget "_C" po1 po2 (list (cons 0 "*TEXT") (cons 8 "Layer002") (cons 1 "ПК *#+##'.##")))
Но тут используется *, которая заменяет любые символы, а мне надо любое количество цифр.
po1 и po2 - это координаты точек
Просмотров: 7976
 
Непрочитано 15.02.2011, 10:38
#2
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Самое простое - "если любое количество цифр" в разумных пределах - то использовать "<OR "OR>" c перебором решеток (скажем от # до #####) - ну или фильтровать постфактум.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 15.02.2011, 10:42
#3
Nitrogenium

инженер
 
Регистрация: 02.03.2010
Санкт-Петербург
Сообщений: 69
<phrase 1=


фильтровать постфактум? Это как?
Nitrogenium вне форума  
 
Непрочитано 15.02.2011, 10:53
#4
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Пишешь функциию на входе набор, условия отбора; на выходе отфильтрованный набор (я бы наборам предпочел списки - но можно и с наборами - если требуется).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 15.02.2011, 11:11
#5
Nitrogenium

инженер
 
Регистрация: 02.03.2010
Санкт-Петербург
Сообщений: 69
<phrase 1=


Что-то я не очень понял
(ssget "_C" po1 po2 (list (cons 0 "*TEXT") (cons 8 "Layer002") (cons -4 "<OR") (cons 1 "ПК #+##'.##") (cons 1 "ПК ##+##'.##") (cons 1 "ПК #+##'.##") (cons 1 "ПК ###+##'.##") (cons 1 "ПК ####+##'.##") (cons 1 "ПК #####+##'.##") (cons -4 "OR>"))) А вот это может прокатит?
Nitrogenium вне форума  
 
Непрочитано 15.02.2011, 11:30
#6
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


А почему нет - это собственно 1 вариант из #2.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 15.02.2011, 11:36
#7
Nitrogenium

инженер
 
Регистрация: 02.03.2010
Санкт-Петербург
Сообщений: 69
<phrase 1=


да вроде все верно, но не особо работает даже просто это:
(list (cons 0 "*TEXT") (cons 8 "Layer002") (cons 1 "ПК #+##'.##"))
cons-ов больше 2-х можно ставить?
Может надо AND использовать?
Nitrogenium вне форума  
 
Непрочитано 15.02.2011, 11:38
#8
Лиспер


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


А зачем так жестко-то?
Код:
[Выделить все]
(ssget '((0 . "*TEXT") (8 . "Layer002") (1 . "ПК #+##'.##,ПК ##+##'.##,ПК ###+##'.##,ПК ####+##'.##,ПК #####+##'.##")))
Так не проще? Offtop: А если гарантируется, что после ПК абсолютно точно идет пробел и сколько-то цифр, то тогда еще проще получится
Код:
[Выделить все]
(ssget '((0 . "*TEXT") (8 . "Layer002") (1 . "ПК *+##'.##")))
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Автор темы   Непрочитано 15.02.2011, 11:49
#9
Nitrogenium

инженер
 
Регистрация: 02.03.2010
Санкт-Петербург
Сообщений: 69
<phrase 1=


А через cons нельзя разве?
Nitrogenium вне форума  
 
Непрочитано 15.02.2011, 11:52
#10
Лиспер


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


Можно. Но каков смысл, если критерии заранее известны?
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Автор темы   Непрочитано 15.02.2011, 12:49
#11
Nitrogenium

инженер
 
Регистрация: 02.03.2010
Санкт-Петербург
Сообщений: 69
<phrase 1=


(ssget "_C" po1 po2 (list (cons -4 "<OR") (cons 0 "*TEXT") (cons 8 "Layer002") (cons 1 "ПК #+##'.##") (cons -4 "OR>")))
Вот это создает набор, но создает неверно, то есть ПК е3+45.15 скажем в набор войдет =(((((!
Nitrogenium вне форума  
 
Непрочитано 15.02.2011, 13:02
#12
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


ПК е3+45.15 -> (cons 1 "ПК ?#+##'.##")
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 15.02.2011, 13:08
#13
Лиспер


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


А почему в #11 используется OR?
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Автор темы   Непрочитано 15.02.2011, 13:13
#14
Nitrogenium

инженер
 
Регистрация: 02.03.2010
Санкт-Петербург
Сообщений: 69
<phrase 1=


Уж все что можно перебрал - ничего не подходит: набор не создается
...либо фильтр не работает
Nitrogenium вне форума  
 
Непрочитано 15.02.2011, 13:15
#15
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Уж все что можно перебрал - ничего не подходит: набор не создается
...либо фильтр не работает
Выкладывай чертеж где не создается
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 15.02.2011, 13:19
#16
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от Nitrogenium Посмотреть сообщение
(ssget "_C" po1 po2 (list (cons -4 "<OR") (cons 0 "*TEXT") (cons 8 "Layer002") (cons 1 "ПК #+##'.##") (cons -4 "OR>")))
на русский язык это выражение можно перевести так:
создать набор объектов, попавших в секущую рамку, определяемую точками po1 и po2, при этом объект набора должен быть или текстом или на слое "Layer002" или в его dxf-коде 1 должна содержаться строка, отвечающая шаблону "ПК #+##'.##"
Do$ вне форума  
 
Автор темы   Непрочитано 15.02.2011, 13:23
#17
Nitrogenium

инженер
 
Регистрация: 02.03.2010
Санкт-Петербург
Сообщений: 69
<phrase 1=


Вот файл - особенного ничего не представляет - создан в целях отладки
Цитата:
на русский язык это выражение можно перевести так:
создать набор объектов, попавших в секущую рамку, определяемую точками po1 и po2, при этом объект набора должен быть или текстом или на слое "Layer002" или в его dxf-коде 1 должна содержаться строка, отвечающая шаблону "ПК #+##'.##"
Да, при попытке прописать AND отказывается создавать набор
Выяснилось, что апостраф '. работать не хочет, а просто . работает
Все - разобрался: должен использоваться `, а не '
Вложения
Тип файла: dwg
DWG 2007
Образец 0.dwg (83.3 Кб, 688 просмотров)

Последний раз редактировалось Nitrogenium, 15.02.2011 в 14:07.
Nitrogenium вне форума  
 
Непрочитано 15.02.2011, 14:16
#18
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Ну вот на вашем чертеже так все работает
Код:
[Выделить все]
 
(setq nbr (ssget "_X" (list (cons 0 "*TEXT") (cons -4 "<OR") (cons 1 "ПК #+##`.##") (cons 1 "ПК ##+##`.##") (cons 1 "ПК ###+##`.##") (cons 1 "ПК ####+##`.##") (cons 1 "ПК #####+##`.##") (cons -4 "OR>"))))
По-моему Вы в предыдущих примерах использовали символ " ' " (апостроф), в конструкции (cons 1 "ПК #+##'.##"), а нужно " ` " (обратный апостроф) поэтому и не работало

P.S не успел автор сам разобрался
__________________
cadtools
TararykovDG вне форума  
 
Автор темы   Непрочитано 15.02.2011, 15:48
#19
Nitrogenium

инженер
 
Регистрация: 02.03.2010
Санкт-Петербург
Сообщений: 69
<phrase 1=


Всем спасибо!
Правда хотелось бы уточнить - реально ли написать, чтобы количество цифр перед плюсом было вообще любым
Nitrogenium вне форума  
 
Непрочитано 15.02.2011, 17:02
#20
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от Nitrogenium Посмотреть сообщение
реально ли написать, чтобы количество цифр перед плюсом было вообще любым
ИХМО только вторым метод в #2.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 15.02.2011, 17:19
#21
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Nitrogenium Посмотреть сообщение
Правда хотелось бы уточнить - реально ли написать, чтобы количество цифр перед плюсом было вообще любым
Реально. Подобные задачи удобней решать с помощью регулярных выражений (обсуждалось уже). После одного такого обсуждения я нацарапал это (можно глянуть озвученное видео, демонстрирующее применение регексов в акаде).
Цитата:
содержащего такой текст:
"ПК "любое количество цифр"+"две цифры,точка,две цифры
В терминах регулярных выражений обозначенное тобой правило выглядит так (на вскидку, т.к. с регексами давно не работал):
"^ПК [0-9]+\+[0-9]{2}\.[0-9]{2}$"
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 15.02.2011 в 17:36. Причина: добавил правило
hwd вне форума  
 
Непрочитано 15.02.2011, 19:40
#22
Sad Dog

Ищу работу
 
Регистрация: 12.06.2010
Сообщений: 35


Цитата:
"^ПК [0-9]+\+[0-9]{2}\.[0-9]{2}$"
И как эту радость запихнуть в ssget?
Sad Dog вне форума  
 
Непрочитано 15.02.2011, 19:42
#23
Кулик Алексей aka kpblc
Moderator

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


Ха, да никак. Это регулярное выражение из .NET (мне так кажется)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 15.02.2011, 21:15
#24
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Sad Dog
И как эту радость запихнуть в ssget?
Её не нужно запихивать в ssget. С помощью "этой радости"(с) можно, для начала проверить, соответствует ли рассматриваемая строка требованиям, которые к ней предъявляет автор топика. Если соответствует - брать её в обработку.
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Ха, да никак. Это регулярное выражение из .NET (мне так кажется)
Неправильно тебе кажется. Регулярные выражения не привязаны к конкретной платформе. Справка. Насчёт "да никак" - не соглашусь, т.к. можно на том же .Net написать Lisp-функцию, которая выполнит нужное действие, используя регулярное выражение. Это не сложно.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 15.02.2011, 21:18
#25
Кулик Алексей aka kpblc
Moderator

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


hwd, обрати внимание - в топике рассматривается только AutoLISP и его возможности.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 15.02.2011, 21:26
#26
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
hwd, обрати внимание - в топике рассматривается только AutoLISP и его возможности.
т.е. отметается даже VisualLisp? И Lisp-функция принципиально должна быть написана на AutoLisp?
Я подумал, что для автора не важно, на чём написана Lisp-функция (на Lisp/C++/C# или др.) - важно, чтобы её можно было использовать в Lisp-коде...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 15.02.2011, 21:28
#27
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


ИХМО - эта радость имеет смысл ТОЛЬКО в содержащим .Net модули проекте под автокад (ну или естественно целиком на нем написанном). Ради одного регеска "прикручивать" версионно зависимую dll я большим удобством назвать не могу - интерфейс с ней больше кода займет чем сама функция фильтрации.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 15.02.2011, 21:33
#28
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Дима_ Посмотреть сообщение
интерфейс с ней
Если не сложно - переведи это на русский, а то у меня возникло смутное подозрение, что ты не в курсе что такое "интерфейс"...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 15.02.2011 в 21:39.
hwd вне форума  
 
Непрочитано 15.02.2011, 21:33
#29
Sad Dog

Ищу работу
 
Регистрация: 12.06.2010
Сообщений: 35


Удалено.

см. пост № 33

Последний раз редактировалось Sad Dog, 15.02.2011 в 22:26.
Sad Dog вне форума  
 
Автор темы   Непрочитано 15.02.2011, 21:34
#30
Nitrogenium

инженер
 
Регистрация: 02.03.2010
Санкт-Петербург
Сообщений: 69
<phrase 1=


Цитата:
Я подумал, что для автора не важно, на чём написана Lisp-функция (на Lisp/C++/C# или др.) - важно, чтобы её можно было использовать в Lisp-коде...
Вообще да, только я обычно перед тем, чтобы что-то вставить в свой код это анализирую
А вот чисто средствами AutoLisp и VisualLisp это возможно? То есть чтоб был 1 файл *.lsp
Nitrogenium вне форума  
 
Непрочитано 15.02.2011, 21:54
#31
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от hwd Посмотреть сообщение
Если не сложно - переведи это на русский, а то у меня возникло смутное подозрение, что ты не в курсе что такое "интерфейс" (в разрезе программирования)...
Значение слова интерфейс не ограничивается понятиями объектно-ориентированного программрования. По русски - отфильровать набор по данному параметру займет 5-7 строк лисп кода. Если фильтровать через net регексы - то как мимнимум - dll надо загрузить и точно так-же вставить в функцию фильтрующию набор (3-4 строки с учетом что у нас появилась функция обработки регексов). Теперь вопрос - какой великий смысл в подключении версионно зависимой net библиотеки (килобайт на 500 минимум) + еще ее надо написать (что даже без учета шаблонных подключений библиотек займет по моим пркидкам (здесь могу ошибаться - но думаю не сильно)) строчек 10-30 (в зависимости от заложенного функционала и языка программирвания) "чистого" кода.
p.s. полемику о полезности регксов разводить не надо - говорим про конкртный случай.
з.з.ы. - блин - похоже буква Е на этом ноуте совсем "заплыла".
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 15.02.2011, 22:02
#32
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Дима_ Посмотреть сообщение
ИХМО - эта радость имеет смысл ТОЛЬКО в содержащим .Net модули проекте под автокад (ну или естественно целиком на нем написанном). Ради одного регеска "прикручивать" версионно зависимую dll я большим удобством назвать не могу - интерфейс с ней больше кода займет чем сама функция фильтрации.

Значение слова интерфейс не ограничивается понятиями объектно-ориентированного программрования. По русски - отфильровать набор по данному параметру займет 5-7 строк лисп кода. Если фильтровать через net регексы - то как мимнимум - dll надо загрузить и точно так-же вставить в функцию фильтрующию набор (3-4 строки с учетом что у нас появилась функция обработки регексов). Теперь вопрос - какой великий смысл в подключении версионно зависимой net библиотеки (килобайт на 500 минимум) + еще ее надо написать (что даже без учета шаблонных подключений библиотек займет по моим пркидкам (здесь могу ошибаться - но думаю не сильно)) строчек 10-30 (в зависимости от заложенного функционала и языка программирвания) "чистого" кода.
p.s. полемику о полезности регксов разводить не надо - говорим про конкртный случай.
з.з.ы. - блин - похоже буква Е на этом ноуте совсем "заплыла".
ИМХО - ради того, чтобы в AutoLisp/VisualLisp появилась возможность использовать регулярные выражения, как раз таки не жалко подключить дополнительную библиотеку, потому как это очень мощный и гибкий инструмент в умелых руках. Уверен, что со мной согласятся те, кто знает, что такое регулярное выражение, каковы его возможности и как с ним работать.

Дима_ , насколько мне помнится, тут уже "блистал" на тему "понимания", что это такое, поэтому его мнение на этот счёт можно игнорировать.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 15.02.2011, 22:23
1 | #33
Sad Dog

Ищу работу
 
Регистрация: 12.06.2010
Сообщений: 35


Цитата:
реально ли написать, чтобы количество цифр перед плюсом было вообще любым
Вот решение.
Код:
[Выделить все]
 (setq ss (ssget "_X" (list (cons 0 "*TEXT") (cons 8 "Layer002")
               (cons -4 "<AND")
                   (cons 1 "ПК *#+##`.##")
                   (cons -4 "<NOT") (cons 1 "ПК *@*+##`.##") (cons -4 "NOT>")
                   (cons -4 "<NOT") (cons 1 "ПК *.*+##`.##") (cons -4 "NOT>")
               (cons -4 "AND>"))))
p.s.
Цитата:
ради того, чтобы в AutoLisp/VisualLisp появилась возможность использовать регулярные выражения...
В AutoLisp/VisualLisp есть возможность использовать выражения, очень похожие на регулярные - это функция wcmatch.
Но самое полезное, что wild-card patterns (те же, что и в функции wcmatch) можно использовать непосредственно в функции ssget, осуществляя фильтрацию примитивов при создании наборов. Имеющихся возможностей, как правило, вполне достаточно.

Последний раз редактировалось Sad Dog, 15.02.2011 в 23:28.
Sad Dog вне форума  
 
Непрочитано 15.02.2011, 22:51
#34
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от hwd Посмотреть сообщение
Дима_ , насколько мне помнится, тут уже "блистал" на тему "понимания", что это такое, поэтому его мнение на этот счёт можно игнорировать.
Мне совсем не нравится тон и манера Вашего общения, то что Вы не умеете слушать (читать) других и являетесь счастливым обладателем завышенной самооценки - еще не дает Вам права определять какое мнение заслуживает внимание других пользователей - с этим неплохо здесь справляются други люди с наделенными на то полномочиями - пока больше всех "не игнорируете" мое мнение именно Вы. Я принимаю ко вниманию только аргументированные мнения - коих с Вашей стороны я пока в этой теме не увидел.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 15.02.2011, 23:00
#35
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Мне совсем не нравится тон и манера Вашего общения, то что Вы не умеете слушать (читать) других и являетесь счастливым обладателем завышенной самооценки - еще не дает Вам права определять какое мнение заслуживает внимание других пользователей - с этим неплохо здесь справляются други люди с наделенными на то полномочиями - пока больше всех "не игнорируете" мое мнение именно Вы. Я принимаю ко вниманию только аргументированные мнения - коих с Вашей стороны я пока в этой теме не увидел.
Вспылил я немного... Если обидел - извиняюсь. Спорить с вами по поводу регексов и "аргументированных мнений" (с) желания нет - всё равно каждый останется при своём.
Умолкаю.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 16.02.2011, 05:41
#36
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Sad Dog

Но тем не менее, мне просто интересно
Цитата:
Сообщение от Nitrogenium Посмотреть сообщение
Например вот такой текст:
ПК 2+50.00
ПК 45+58.45
ПК 120+84.65
Написал вот так: (ssget "_C" po1 po2 (list (cons 0 "*TEXT") (cons 8 "Layer002") (cons 1 "ПК *#+##`.##")))
Но тут используется *, которая заменяет любые символы, а мне надо любое количество цифр.
А что, в чертеже реально может встретиться текст, содержащий между ПК и +##`.## любые символы не являющиеся цифрами?
например: ПК тра-ля-ля+00.00 или ПК хрень какая-то+00.00
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Автор темы   Непрочитано 16.02.2011, 08:42
#37
Nitrogenium

инженер
 
Регистрация: 02.03.2010
Санкт-Петербург
Сообщений: 69
<phrase 1=


Цитата:
А что, в чертеже реально может встретиться текст, содержащий между ПК и +##`.## любые символы не являющиеся цифрами?
например: ПК тра-ля-ля+00.00 или ПК хрень какая-то+00.00
пишу прогу для подсчета объемов по поперечным профилям. Расстояние от начала пикетажа определяется из пикета. Определяется так:
ПК 3+12.45 -----> 300+12.45 м = 312.45 м
Иначе говоря, чтобы пользователь не смог сделать неверный выбор и в набор не попало то, что далее не может считаться, в результате чего работа программы прерывается с ошибкой
Nitrogenium вне форума  
 
Непрочитано 16.02.2011, 09:00
#38
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Nitrogenium Посмотреть сообщение
Иначе говоря, чтобы пользователь не смог сделать неверный выбор и в набор не попало то, что далее не может считаться, в результате чего работа программы прерывается с ошибкой
Так может проще проанализировать текст на корректность после того как отобраны тексты по шаблону?!
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 16.02.2011, 09:15
#39
Nitrogenium

инженер
 
Регистрация: 02.03.2010
Санкт-Петербург
Сообщений: 69
<phrase 1=


если можно исключить неверный выбор сразу, почему бы так и не сделать?
Nitrogenium вне форума  
 
Непрочитано 16.02.2011, 09:34
#40
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Цитата:
Сообщение от Nitrogenium Посмотреть сообщение
пишу прогу для подсчета объемов по поперечным профилям. Расстояние от начала пикетажа определяется из пикета
Цитата:
Сообщение от Nitrogenium Посмотреть сообщение
если можно исключить неверный выбор сразу, почему бы так и не сделать?
А пикеты кто подписывает? пользователь вручную?
Т.е. пикеты: Пк 3+12.45, ПК 3_+12.45, ПК 3+12,45, ПК 3+12.4_ будут считаться не верными, и не войдут в набор, и поперечник по ним не посчитается, и тогда уже объём будет не верным.
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Автор темы   Непрочитано 16.02.2011, 09:40
#41
Nitrogenium

инженер
 
Регистрация: 02.03.2010
Санкт-Петербург
Сообщений: 69
<phrase 1=


Да, именно так - надо чтобы все пикеты были оформлены одинаково. Часто они уже подписаны
Nitrogenium вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание набора с помощью ssget из примитива *TEXT, содержащего любое количество цифр



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание набора с помощью activeX Composter Программирование 3 15.05.2009 00:11