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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > lisp для простановки строительных координат (АБ-координата) для Autocad 2007

lisp для простановки строительных координат (АБ-координата) для Autocad 2007

Ответ
Поиск в этой теме
Непрочитано 26.09.2016, 12:06 #1
lisp для простановки строительных координат (АБ-координата) для Autocad 2007
olga87
 
Регистрация: 28.05.2007
Сообщений: 207

Здравствуйте Уважаемые программисты!
Помогите пожалуйста написать lisp для простановки строительных координат (АБ) в текущей системе координат.
По горизонтальной оси: ОБ, 1Б (100м), 2Б (200м), ...
По вертикальной оси: 0А, 1А (100м), 2А (100м), ...
С выбором точности с помощью системной переменной luprec.
Заранее спасибо!

Последний раз редактировалось olga87, 26.09.2016 в 12:32.
Просмотров: 1704
 
Непрочитано 26.09.2016, 12:09
#2
Кулик Алексей aka kpblc
Moderator

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


Свой код показывай, где спотык и т.п.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 26.09.2016, 12:17
#3
olga87


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


Код:
[Выделить все]
(defun c:GET_COORD (X AB / [100X] {100X} [x] {x})
  (setq [100X] (fix (/ X 100)))					      ; Получаем число сотен
  (setq {100X} (abs (- X (* 100 [100X]))))			      ; и приплюсовку к сотням
  (setq [x] (fix {100X}))					      ; Отделяем от приплюсовки целую часть
  (setq {x} (abs (- X (fix X))))				      ; Определяем дробную часть
  (cond
    ((wcmatch AB "[АБ]")
     (setq X_coord (strcat (rtos [100X] 2 0)
			   AB
			   (if (minusp X)			      ; Определяем знак приплюсовки
			     "-"
			     "+"
			   )
			   (if (< {100X} 10)			      ; Если приплюсовка меньше 10,
			     "0"				      ; то добавляем ноль перед приплюсовкой
			     ""
			   )
			   (rtos [x] 2 0)
			   mark
			   (substr (rtos {x}
					 2
					 (if (< accuracy 0.01)
					   3
					   2
					 )
				   )
				   3
			   )
		   )
     )
    )
это с форума.

----- добавлено через ~5 мин. -----
Макрос ниже проставляет x,y координаты.
Хочу чтобы он аналогично проставлял, но только строительные координаты (АБ).

Код:
[Выделить все]
(defun trap1 (errmsg)
         (setq *error* temperr)
         (setvar "clayer" clay)
         (command "_ucs" "_p")
(princ)
)
(defun C:XYGN ( / sztxt p1 pt1 p2)

         (command "cmdecho" 0)
         (setq clay (getvar "clayer"))
         (setq temperr *error*)
         (setq *error* trap1)

(setq sztxt (getreal (strcat "\nВведите высоту текста <" (rtos (getvar "TEXTSIZE")) ">: ")))
(if (null sztxt)
  (setq sztxt (getvar "TEXTSIZE"))
  (setvar "TEXTSIZE" sztxt)
)

(defun _addleader (up-string low-string   start-point end-point /   lead_obj ann_obj point-list)
  (if (not low-string)(setq low-string "")) ;_ end of if
  (setq point-list (apply 'append (list start-point end-point)))
  (setq   ann_obj    (vla-addmtext
         (if (and (zerop (vla-get-activespace (vla-get-activedocument (vlax-get-acad-object))))
           (= :vlax-false (vla-get-mspace (vla-get-activedocument (vlax-get-acad-object)))))
    (vla-get-paperspace (vla-get-activedocument (vlax-get-acad-object)))
    (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
         (vlax-3d-point end-point)
         0
         (if (/= low-string "")(strcat up-string "\\P" low-string) up-string)))
  (if (vlax-property-available-p ann_obj 'BackgroundFill)
  (vla-put-BackgroundFill ann_obj :vlax-true))
  (setq lead_obj (vla-addleader
        (if (and (zerop (vla-get-activespace (vla-get-activedocument (vlax-get-acad-object))))
           (= :vlax-false (vla-get-mspace (vla-get-activedocument (vlax-get-acad-object)))))
    (vla-get-paperspace (vla-get-activedocument (vlax-get-acad-object)))
    (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
        (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbdouble
             (cons 0 (1- (length point-list)))) point-list)) ann_obj  acLineNoArrow ) ;_ end of vla-AddLeader
   ) ;_ end of setq
  (vla-put-attachmentpoint ann_obj
    (+ 4 (if (> (car end-point) (car start-point))
       0  2) ;_ end of if
       (if (/= low-string "")
           0 3) ;_ end of if
       ) ;_ end of +
    ) ;_ end of vla-put-AttachmentPoint
  (vla-put-insertionpoint ann_obj (vlax-3d-point end-point))
  (vla-put-verticaltextposition lead_obj acOutside)
  (vla-put-coordinate lead_obj 1 (vlax-3d-point end-point)) lead_obj)

  (vl-load-com)
  (princ "\nLUPREC value = ")(princ (getvar "LUPREC"))
  (princ "  TEXTSIZE value = ")(princ (getvar "TEXTSIZE"))

  (progn
    (setq p1 (getpoint "\nУкажите точку для считывания координат: "))
    (command "_ucs" "_w")
    (setq pt1 (getpoint "\nУкажите ту же точку для считывания координат еще раз: "))
    (setq p2 (getpoint pt1 "\nУкажите размещение полки с текстом: "))

    (_addleader
    (strcat "X=" (vl-string-translate "." "," (rtos (nth 0 p1) 2)))
    (strcat "Y=" (vl-string-translate "." "," (rtos (nth 1 p1) 2)))
    (trans pt1 1 0)(trans p2 1 0))
  )
  (command "_explode" "_last")
  (command "_ucs" "_p")
  (princ)
)
(princ "\nЗапуск команды XYGN")
(princ)
olga87 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > lisp для простановки строительных координат (АБ-координата) для Autocad 2007

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строительные координаты Нефтепроводчик Готовые программы 90 01.03.2021 22:53
Оценка воздействия вибрации на строительные конструкции при обследовании. Нормативные документы по оценке вибрации от работающего оборудования на строительные конструкции. Линар Обследование зданий и сооружений 8 21.08.2015 17:08
Строительные оси небольших сооружений в комплектах ТХ, АР, КЖ, ГП. Кто назначает ? Tyhig Архитектура 8 02.04.2013 13:45
Как перевести координаты Модели в координаты Листа? ===AAA=== Программирование 6 24.10.2007 22:09