Анкерные системы Schöck Dorn
dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Чем лучше получить значение из текста и вставить его в Z координату точки

Чем лучше получить значение из текста и вставить его в Z координату точки

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 09.11.2017, 16:56 #1
Чем лучше получить значение из текста и вставить его в Z координату точки
Rozman
 
Регистрация: 09.11.2017
Сообщений: 3

Rozman вне форума Вставить имя

Есть задача, нужно выделить текст на схеме и чтобы при выделение значение этого текста скопировалось в буфер или переменную (это числовое значение)
Далее, чтобы курсор переключился в режим PO (point) и когда кликаешь в место, куда нужно ставить точку, чтобы это наше числовое значение прописалось в точку как Z координата.

С автокадом я на очень большое ВЫ, всего 2 дня. Изучил немного про макросы, лиспы, ВБА, Diesel.
Но не могу как-то скомбинировать всё что я нашел.

Главный вопрос в принципе каким методом я смогу это добиться? Если подскажете, я смогу покопать дальше в этом направлении.
Так как макрос совмещенный с Дизелем я немного написал, но я не могу получить значение текстовое и вставить его как Z координату.

Спасибо заранее.
Просмотров: 458
 
Непрочитано 09.11.2017, 18:06
#2
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 1,443


1. Под какой автокад или иной САD все это пишется , может быть у Вас LT версия автокада и все мучения напрасны...
2. На каком языке программирования Вы хотите все это реализовать (lisp, vba, группа языков .net платформы, python, c++ и т.д.)? То, что Вы описали можно сделать на практически любом
3. Что Вы уже сделали?
Boxa вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 09.11.2017, 18:36
#3
Rozman


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


- Автокад 2017, не LT версия
- ну вот как раз хотел узнать, что удобнее и попроще.
VBA могу разобраться. Могу Питон, но не знал, что с ним можно. Не представляю пока как Питон там интегрируется.
- Я сейчас не за тем компом, но у меня пока только обрывки макросов, чтобы очистить курсос, сделать его точкой. И Дищель код, чтобы якобы получить какое-то свойство обьекта. Но все вместе это не удалось совместить. А таке не понял можно ли макросом поменять цвет оъекту и получить определленное свойство объекта.
Rozman вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 09.11.2017, 19:06
1 | #4
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 1,443


Проще всего делать на том языке , который Вы знаете. Если Вы знаете питон, то наверное Вам эти материалы помогут: http://adn-cis.org/forum/index.php?topic=7864.0
На самом деле в Вашей задаче нет ничего сложного:
1. Запрашиваете у пользователя выбор одиночного объекты, посмотрите в справке по VBA GetEntity Method (ActiveX)
2. У объекта AcadText есть свойство textString , где и лежит нужное Вам значение координаты по оси Z
3. Теперь запросить у пользователя точку , смотрите в той же справке GetPoint Method (ActiveX)
4. В отой же справке смотрим AddPoint Method (ActiveX) и выводим точку
5. Оборачиваем все это в бесконечный цикл с выходом по условию
6. Profit

ЗЫ
Справка как правило лежит тут C:\Program Files\Common Files\Autodesk Shared\ACADAUTO.CHM
Boxa вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 09.11.2017, 19:09
#5
trir


 
Регистрация: 18.12.2010
Сообщений: 2,442


в Civil'е есть штатные инструменты
а так DATAEXTRACTION - вытаскиваем тексты и вставляем как точки
trir на форуме вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 09.11.2017, 19:20
#6
Setvar

Всего понемногу
 
Регистрация: 10.02.2007
Москва
Сообщений: 147


Вопросы:
Текст находится где попало? Откуда известно, что именно этот текст должен соответствовать указанной точке?
По-моему, задача в принципе решается очень легко простым AutoLisp'ом.
__________________
Установи FILEDIA в 1 и не парься.
Setvar вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 09.11.2017, 20:05
#7
Gref


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


простите за оффтоп, почитал ответы форумчан и так понял что проблемы достать значения текстовых объектов с координатами не проблема, для C# под 2012 autocad? или под vba проще и быстрее?
Gref вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 09.11.2017, 20:06
#8
trir


 
Регистрация: 18.12.2010
Сообщений: 2,442


vba проще и быстрее, но далеко на нём не уедешь
trir на форуме вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 09.11.2017, 20:56
#9
Setvar

Всего понемногу
 
Регистрация: 10.02.2007
Москва
Сообщений: 147


Человек всего 2 дня знакомился с AutoCAD'ом, какой с него спрос.
Простейшая программа:
Код:
[Выделить все]
(defun C:T-P ( / tz kz xy xyz)
(setq tz (car (entsel "\nВыберите текст: ")))
(if (or (= (cdr (assoc 0 (entget tz))) "TEXT") (= (cdr (assoc 0 (entget tz))) "MTEXT"))
    (progn
    (setq kz (atof (cdr (assoc 1 (entget tz)))))
    (setq xy (getpoint "\nУкажите точку в плане: "))
    (setq xyz (list (nth 0 xy) (nth 1 xy) kz))
    (princ "\nКоординаы точки = ") (princ xyz)
    (vl-cmdf "_POINT" xyz)
    ) ; progn
    (princ "\nЭто не текст.")
) ; if
(princ)
)
Желательно сначала установить удобное отображение точки командой "_ddptype" ("ДИАЛТТОЧ").
__________________
Установи FILEDIA в 1 и не парься.
Setvar вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 09.11.2017, 21:08
#10
Кулик Алексей aka kpblc
Moderator

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


Setvar, забыл про объектную привязку. Да и команды здесь совсем необязательны...
Код:
[Выделить все]
 (defun c:p2t (/ ent pt str)
  (while (and (= (type
                   (setq ent (vl-catch-all-apply (function (lambda () (car (nentsel "\nВыберите текст <Отмена> : "))))))
                   ) ;_ end of type
                 'ename
                 ) ;_ end of =
              (wcmatch (strcase (cdr (assoc 0 (entget ent)))) "*TEXT,*ATTRIB*")
              (setq ent (vlax-ename->vla-object ent))
              (= (type (setq pt (vl-catch-all-apply (function (lambda () (getpoint "\nУкажите точку <Отмена> : ")))))
                       ) ;_ end of type
                 'list
                 ) ;_ end of =
              ) ;_ end of and
    (entmakex
      (list (cons 0 "POINT")
            (cons 10 (list (car pt) (cadr pt) (atof (vl-string-subst "." "," (vla-get-textstring ent)))))
            ) ;_ end of list
      ) ;_ end of entmakex
    ) ;_ end of while
  (princ)
  ) ;_ end of defun
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 09.11.2017, 21:16
#11
Setvar

Всего понемногу
 
Регистрация: 10.02.2007
Москва
Сообщений: 147


Ничего я не забыл. Для окончательной программы данных маловато.
В ActiveX здесь тоже совсем нет нужды.
__________________
Установи FILEDIA в 1 и не парься.
Setvar вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 09.11.2017, 21:21
#12
Кулик Алексей aka kpblc
Moderator

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


Можно и без него обойтись, не спорю. Привычка - сильная штука.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 09.11.2017, 23:34
#13
Rozman


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


Boxa, спасибо за информацию.
Setvar, Кулик Алексей aka kpblc, большое спасибо, работает.
С циклом именно то, что я хотел вообще.

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

P.S. всем кто отписался, тоже благодарность

Последний раз редактировалось Rozman, 10.11.2017 в 09:44.
Rozman вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Чем лучше получить значение из текста и вставить его в Z координату точки

Инженерные консультации
Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вставить значение длины растягиваемого объекта в поле (дин. блок) Scared AutoCAD 3 18.10.2017 16:48
Как лучше вставить табличку из Эксель в Автокад 2016? Kappi AutoCAD 3 06.09.2017 20:02
Создание точки поверхности Civil 3D из текста Maria-Mirabella Вертикальные решения на базе AutoCAD 29 26.02.2013 07:18
Autocad: параметризация текста и точки dexter_aka_dex Программирование 10 30.08.2011 16:15
Как в динамическом блоке вставить значение из атрибута блока в значение параметрического размера(внутри блока)? swcats AutoCAD 3 22.07.2011 08:50

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||