| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
20.01.2020, 16:11 | #1 | |
Запись длин примитивов в таблицу
Регистрация: 16.01.2020
Сообщений: 10
|
||
Просмотров: 3267
|
|
||||
Регистрация: 16.01.2020
Сообщений: 10
|
Нет, не кабельный. )
Я нашел вот в этой теме https://forum.dwg.ru/showthread.php?t=12911&page=2 текст программы уважаемого А. Ривилиса с решением этой задачи для x32. К сожалению на x64 она работает некорректно, занося в ячейки таблицы xxxx вместо длин. Может кто знает как это поправить и готов помочь? |
|||
|
||||
IL-14,
Нужно воспользоваться этой функцией: https://forum.dwg.ru/showpost.php?p=566244&postcount=8 А затем заменить в моём коде: Код:
Код:
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Регистрация: 16.01.2020
Сообщений: 10
|
Спасибо! Попробую поправить текст программы.
----- добавлено через ~9 мин. ----- Да, огромное спасибо! Все отлично работает. Полезнейшая программа для самых разных инженерных задач. Уверен, для многих будет незаменима. Код пока вставил "кое-как", позже почитаю как это сделать правильно и поправлю. Программа сохраняет в выбранную акад-табличку значения длин выбранных линий (в выбранные ячейки). Табличку экспортируем в эксель и just enjoy! )) Просто, но ооочень удобно! (defun C:qw3 ( / en obj s row col) (vl-load-com) (cond ((and (setq en (car (entsel "\nВыберите таблицу: "))) (= (cdr (assoc 0 (entget en))) "ACAD_TABLE")) (setq obj (vlax-ename->vla-object en)) (while (and (setq en (car (entsel "\nВыберите линию (ENTER - завершение): " ))) (wcmatch (cdr (assoc 0 (entget en))) "*LINE")) (setq s (strcat "%<\\AcObjProp Object(%<\\_ObjId " (Get-ObjectID-x86-x64 (vlax-ename->vla-object en)) ">%).Length>%" )) (if (setq p (getpoint "\nУкажите ячейку таблицы: " ))(progn (if (= :vlax-true (vla-HitTest obj (vlax-3d-point (trans p 1 0)) (vlax-3d-point (trans (getvar "VIEWDIR") 1 0)) 'row 'col)) (vla-SetText obj row col s) ) )) ;_endof if progn ) ) (t (princ "\nЭто не таблица!") ) ) (princ) ) ;;-------------------------------------------------------- ;; Функция получает строковое представление ObjectID ;; вне зависимости от того AutoCAD x86 или x64 ;; Источник: https://discussion.autodesk.com/foru...sageID=6172961 ;;-------------------------------------------------------- (defun Get-ObjectID-x86-x64 (obj / util) (setq util (vla-get-Utility (vla-get-activedocument (vlax-get-acad-object)))) (if (= (type obj) 'ENAME)(setq obj (vlax-ename->vla-object obj))) (if (= (type obj) 'VLA-OBJECT) (if (> (vl-string-search "x64" (getvar "platform")) 0) (vlax-invoke-method util "GetObjectIdString" obj :vlax-False) (rtos (vla-get-objectid obj) 2 0) ) ) ) ;_ end of defun Последний раз редактировалось IL-14, 21.01.2020 в 00:08. Причина: попытка вставить код корректно не удалась. |
|||
|
||||
Регистрация: 16.04.2009
Петрозаводск
Сообщений: 323
|
|
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как «заставить» AutoCad 2011 выдать таблицу с параметрами длин и углов заданных отрезков? | HellFistula | AutoCAD | 4 | 12.03.2018 14:02 |
Помогите с нумерацией большого количества полилиний на чертеже и сведением их длин в таблицу! | Olympisch | LISP | 19 | 21.06.2016 14:49 |
LISP для подсчета суммы длин линий | Kostinok | LISP | 18 | 26.04.2013 14:56 |
Почему при вставке новой строки в таблицу в кторой есть ссылки на другую таблицу эти ссылки начинают ссылаться на другие ячейки? | МишаИнженер | AutoCAD | 8 | 09.11.2010 20:24 |
LISP для поиска групп (наборов) одинаковых примитивов и замена их блоком | ElectroBOG | LISP | 20 | 23.07.2010 16:00 |