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

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

Вставка блока "Высотная отметка"

Ответ
Поиск в этой теме
Непрочитано 18.11.2008, 19:10 #1
Вставка блока "Высотная отметка"
Danger_pgs
 
Строительная диагностика
 
Барнаул
Регистрация: 23.02.2008
Сообщений: 24

Название для темы не совсем коректное, но всё же....
Есть динамический блок высотной отметки, числовые значения задаются 2-мя атрибутами (вверх и вниз хвостиком, левая правая - просто отражается) блок вставляется из файла Блоки.dwg имя блока Ometka, тэги атрибутов: OV и ON, текстовые строки для заполнения атрибутов формируются программно...
Нужна функция (желательно на ActiveX), которая бы вставляла блок с заданным именем из заданного файла в указанную точку с заполнением обоих атрибутов заданным значением. И ещё, если можно, функцию (на ActiveX) для переноса начала координат в заданную точку.
Вопрос на самом деле несложный... просто жуДко не хватает времени
Просмотров: 7828
 
Непрочитано 18.11.2008, 19:31
#2
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


ИМХО вставку блока я бы делал все-таки через командные методы, уже обсуждалось.
http://forum.dwg.ru/showthread.php?t=22534 - а вот тута можно посмотреть как отследить появившийся объект, спасибо VVA и всем остальным, кстати для блока с атрибутами я немного поправил код.
Sleekka вне форума  
 
Непрочитано 19.11.2008, 00:27
#3
Кулик Алексей aka kpblc
Moderator

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


Есть вариант командой вставить целиком внешний файл (с отменой в момент запроса точки вставки), потом уже через vla-insertblock выполнять собственно вставку блока. Сильно хочется спать. Если завтра будет время, попробую нарисовать код (точнее, "выдрать" из собственной библиотеки нужные куски).
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 19.11.2008, 13:00
#4
Danger_pgs

Строительная диагностика
 
Регистрация: 23.02.2008
Барнаул
Сообщений: 24
<phrase 1=


Кулик Алексей aka kpblc буду оченно благодарен!!!
Danger_pgs вне форума  
 
Непрочитано 20.11.2008, 00:36
#5
Кулик Алексей aka kpblc
Moderator

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


В общем, попробуй. Код во вложении. Я прогнал на нескольких "штатных" блоках, вроде работало...
Вложения
Тип файла: lsp insert-and-set.LSP (12.7 Кб, 161 просмотров)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.02.2016, 08:41
#6
config


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


Доброго времени суток, уважаемые форумчане. Возник вопрос по автоматическому определению высотной отметки. Не смог найти поиском, возможно уже есть реализация такой идеи. Допустим, имеем продольный профиль. Указав поперечный масштаб и базовую отметку начала отсчета кликом мыши в произвольной части профиля нужно определить высотную отметку точки. AutoCAD 2010. Спасибо.
config вне форума  
 
Непрочитано 12.02.2016, 08:43
#7
VVA

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


Цитата:
Сообщение от config Посмотреть сообщение
Не смог найти поиском
Помогаю
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.02.2016, 10:01
#8
config


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Помогаю
За помощь конечно спасибо. Прежде чем задавать вопрос, я конечно же эти сообщения прочел. Нет там того, о чем я вопрошал. Именно ввода базовой отметки отсчета к сожаления нет.
config вне форума  
 
Непрочитано 12.02.2016, 10:59
#9
VVA

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


Автоотметка?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.02.2016, 13:29
#10
config


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Автоотметка?
В первую очередь пытался опробовать этот блок. Но вот ведь какая незадача вышла. Стоит только ткнуть курсором в текст, как он тот час же исчезает. Я в начальном посте указал версию AutoCAD. Может быть он под десятку не работает?
ЗЫ: Регенерацию и обновление поля проверял.
Миниатюры
Нажмите на изображение для увеличения
Название: изобр..png
Просмотров: 48
Размер:	3.4 Кб
ID:	165236  
config вне форума  
 
Непрочитано 12.02.2016, 14:02
#11
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 433


Как мне показалось, разбираться не хотите. Поэтому установите СПДС от Autodesk. Там такая функция есть.
RNB вне форума  
 
Непрочитано 12.02.2016, 15:34
#12
P_S


 
Регистрация: 09.10.2006
Санкт-Петербург
Сообщений: 99


Просто нужно человеку что-то вроде:
Код:
[Выделить все]
 (setq scale(getint "\nВведите вертикальный масштаб:  1:")
      pt_y(cadr(getpoint "\nУкажите точку с известной отметкой"))
      ish_otm(getreal "\nВведите отметку указанной точки: "))
(princ(strcat "\nОтметка указанной точки: "(rtos(+ ish_otm(/(-(cadr(getpoint "\nУкажите точку")) pt_y)(/ 1000 scale)))2 3)))
P_S вне форума  
 
Непрочитано 12.02.2016, 16:49
#13
config


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


P_S, супер! Спасибо огромное! А нельзя зациклить указание множества точек на базовой отметке?
config вне форума  
 
Непрочитано 15.02.2016, 09:38
#14
P_S


 
Регистрация: 09.10.2006
Санкт-Петербург
Сообщений: 99


Можно зациклить:
Код:
[Выделить все]
 (setq scale(getint "\nВведите вертикальный масштаб:  1:")
      pt_y(cadr(getpoint "\nУкажите точку с известной отметкой"))
      ish_otm(getreal "\nВведите отметку указанной точки: ")
      do_next T)
  (while do_next
    (initget 1 "Точка Выход")
    (setq res (getkword "[Точка/Выход]"))
    (cond
      ((= res "Точка") (princ(strcat "\nОтметка указанной точки: "(rtos(+ ish_otm(/(-(cadr(getpoint "\nУкажите точку")) pt_y)(/ 1000 scale)))2 3))))
      ((= res "Выход")(setq do_next nil))))
P_S вне форума  
 
Непрочитано 15.02.2016, 10:02
#15
config


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


P_S, на этапе указания точки, к сожалению, происходит сбой программы.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 44
Размер:	7.4 Кб
ID:	165309  
config вне форума  
 
Непрочитано 15.02.2016, 10:23
#16
P_S


 
Регистрация: 09.10.2006
Санкт-Петербург
Сообщений: 99


Предлагается выбор: ввести точку или выйти. Контекстное меню или ключевое слово.
P_S вне форума  
 
Непрочитано 15.02.2016, 10:29
#17
config


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


Цитата:
Сообщение от P_S Посмотреть сообщение
Предлагается выбор: ввести точку или выйти. Контекстное меню или ключевое слово.
Прошу прощения, это я не досмотрел. Все работает как надо. Ну и последний штрих. Если возможно сделать запуск программы командой, чтобы была возможность повесить макрос на кнопку. Спасибо!
config вне форума  
 
Непрочитано 16.02.2016, 11:47
#18
config


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


Доброго времени суток. Подскажите пожалуйста, а возможно на эту функцию (#14) сделать макрос, для автозагрузки и запуска с кнопки. Спасибо.
config вне форума  
 
Непрочитано 17.02.2016, 23:05
#19
VVA

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


достаточно обернуть в defun
Код:
[Выделить все]
(defun C:Macros ()
(setq scale(getint "\nВведите вертикальный масштаб:  1:")
     pt_y(cadr(getpoint "\nУкажите точку с известной отметкой"))
     ish_otm(getreal "\nВведите отметку указанной точки: ")
     do_next T)
 (while do_next
   (initget 1 "Точка Выход")
   (setq res (getkword "[Точка/Выход]"))
   (cond
     ((= res "Точка") (princ(strcat "\nОтметка указанной точки: "(rtos(+ ish_otm(/(-(cadr(getpoint "\nУкажите точку")) pt_y)(/ 1000 scale)))2 3))))
     ((= res "Выход")(setq do_next nil))))
(princ)
)
Вместо Macros впиши более подходящее название команды
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.02.2016, 09:06
#20
trushev


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


Цитата:
Сообщение от VVA Посмотреть сообщение
достаточно обернуть в defun
А локальные переменные объявить было лень?

Последний раз редактировалось trushev, 18.02.2016 в 09:32.
trushev вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Вставка блока "Высотная отметка"

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Извлечение атрибутов блока и вставка атрибутов в формулу andery AutoCAD 38 15.06.2009 02:39
Вставка таблицы внутри анонимного блока Кулик Алексей aka kpblc Программирование 7 21.06.2006 15:05
вставка блока с переопределением Net AutoCAD 17 25.04.2006 18:17
вставка блока Visla AutoCAD 6 13.03.2004 14:03