Мультивыноска . Как сделать чтобы на выноске происывались координаты автоматом
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

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

Мультивыноска . Как сделать чтобы на выноске происывались координаты автоматом

Ответ
Поиск в этой теме
Непрочитано 10.08.2021, 15:32 #1
Мультивыноска . Как сделать чтобы на выноске происывались координаты автоматом
Abramowich
 
землеустроитель
 
Нефтекумск
Регистрация: 16.05.2013
Сообщений: 2

Пытаюсь работать в Автокаде 2020. Вроде самоучки
Просмотров: 3424
 
Непрочитано 18.08.2021, 17:29
#2
skkkk


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


Abramowich, насколько я знаю, только программно. Вот у меня есть лисп. Указываешь нужную точку (с которой считаются координаты), затем точку полки выноски. Прописывает координаты геодезические в мировой системе координат, то есть, вместо автокадовского X в выноску будет писаться Y и наоборот.
Использовал вспомогательные фунции от VVA

Код:
[Выделить все]
(defun C:KRD ( / pt1 str)
	(if (and
			(setq pt1 (getpoint "\nУкажите точку: "))
			(setq pt2 (getpoint pt1 "\nУкажите положение полки выноски: "))
			(setq str (strcat "X=" (rtos (nth 1 pt1) 2 2) "\/ Y=" (rtos (nth 0 pt1) 2 2)))
		)
		(draw-mleader pt1 pt2 (list str) 0 nil nil)
	)
)
		 
(defun draw-mleader (pt1 pt2 strlist Htxt koeff abz / dic mlst i)
  ;;; pt1 - начальная точка UCS
  ;;; pt2 - конечная точка UCS
  ;;; strlist - список строк
  ;;; Htxt - высота текста
  ;;; koeff - коэфф форматирования pxe или nil
  ;;; abz - коэфф форматирования абзаца \\pa или Nil
  ;;;(draw-mleader (setq pt1(getpoint))(getpoint pt1)(list "Пример" "Минскинжпроект" "Третья строка") 1.5 0.9 nil)
 ;;; Стиль мультивыноски текущий
  (setq i 0)
  (command
    "_mleader"
    "_h"
    "_none"
    pt1
    "_none"
    pt2
  (strcat (if koeff (strcat "\\px"
                              (if abz (strcat "a"(VL-STRING-RIGHT-TRIM "0" (MIP-CONV-TO-STR abz))",") "")
                              "se" (VL-STRING-RIGHT-TRIM "0" (MIP-CONV-TO-STR koeff))";") "")   ;;;"\\pxse0.87;"
;;;            "\\pa0.15;" (car strlist) "\\pa0;"
              (car strlist)
    )
    )
  (while (> (getvar "CMDACTIVE") 0) (command ""))
  (setq dic (vlax-ename->vla-object (entlast)))
  (vla-put-TextString dic
    (strcat (if koeff (strcat "\\px"
                              (if abz (strcat "a"(VL-STRING-RIGHT-TRIM "0" (MIP-CONV-TO-STR abz))",") "")
                              "se" (VL-STRING-RIGHT-TRIM "0" (MIP-CONV-TO-STR koeff))";") "")   ;;;"\\pxse0.87;"
;;;            "\\pa0.15;" (car strlist) "\\pa0;"
              (car strlist)
;;;              (if abz "\\pa0;" "")
            (apply 'strcat
                   (mapcar '(lambda (x) (strcat "\\P" (if (= (setq i (1+ i)) 1)(if abz "\\pa0;" "")   "")  x)) (cdr strlist))
            ) ;_ end of apply
    ) ;_ end of strcat
  )
    (vla-put-TextHeight dic Htxt)
    dic
)

(defun mip-conv-to-str (dat)
      (cond ((= (type dat) 'INT) (setq dat (itoa dat)))
            ((= (type dat) 'REAL) (setq dat (rtos dat 2 12)))
            ((null dat) (setq dat ""))
            (t (setq dat (vl-princ-to-string dat)))
      ) ;_ end of cond
) ;_ end of defun
	
(princ "\nC:KRD")
(princ)
На всякий случай: Как использовать лисп, опубликованный на форуме
skkkk вне форума  
 
Непрочитано 18.08.2021, 17:37
#3
Кулик Алексей aka kpblc
Moderator

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


Только я бы не делал ставку на командное создание мультивыноски. Могут быть варианты: https://autolisp.ru/2015/01/21/mleader_create_order/
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 18.08.2021, 18:18
#4
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,898
Отправить сообщение для Cfytrr с помощью Skype™


можно сделать дин блок с полями в виде выноски, поля покажут координаты
Вложения
Тип файла: dwg
DWG 2007
01.dwg (91.5 Кб, 157 просмотров)
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 18.08.2021, 18:23
#5
skkkk


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


Кулик Алексей aka kpblc, да, знаю об этой особенности, но с остальными методами еще больше гемора
А тут в крайнем случае нужно один раз вбить вручную нужную опцию, она и сохранится в реестре. Если, конечно, пользователь постоянно не создает мультивыноски вручную, вводя ненужную опцию.

----- добавлено через 38 сек. -----
Cfytrr, действительно, я и не вспомнил сразу о таком варианте.
skkkk вне форума  
 
Автор темы   Непрочитано 20.08.2021, 15:45
#6
Abramowich

землеустроитель
 
Регистрация: 16.05.2013
Нефтекумск
Сообщений: 2
<phrase 1=


Спасибо, буду разбираться.
Abramowich вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Мультивыноска . Как сделать чтобы на выноске происывались координаты автоматом



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мои динамические блоки [2] Кулик Алексей aka kpblc Динамические блоки 4334 22.04.2019 09:16
Как сделать, чтобы на листе и на модели были одинаковые рпараметры vova89 AutoCAD 5 03.12.2013 05:39
Как сделать так, чтобы AutoCAD видел библиотеку текстур SKY_SHY AutoCAD 16 21.09.2011 17:37
сделать так, чтобы эта же команда вызывалась другой буквой Venya AutoCAD 2 02.11.2006 01:42
Как сделать, чтобы блок вставлялся автоматом Baron Программирование 11 01.01.2004 20:01