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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Лисп NEработает

Лисп NEработает

Закрытая тема
Поиск в этой теме
Непрочитано 22.11.2014, 14:26 #1
Лисп NEработает
solo123
 
Регистрация: 19.08.2009
Сообщений: 91

Почему нужный масштаб надписи и полка иногда пропадают?
Код:
[Выделить все]
  (defun C:NE ( / p1 p2)
;;На основе _kpblc-draw-leader
(defun _addleader (up-string low-string   start-point end-point /   lead_obj ann_obj point-list)
  ;; Прежде всего преобразовываем low-string в строковый вид:
  (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         ; устанавливается ширина именно 0, для нормального получения полки
         (if (/= low-string "")(strcat up-string "\\P" low-string) up-string)))
  (vla-put-Rotation ann_obj (angle '(0 0 0)(getvar "UCSXDIR")))
  (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-height ann_obj  (* 2.0 (getvar "dimscale")))
  (vla-put-attachmentpoint ann_obj
    ;; Назначая точку выравнивания, будем использовать числовые значения:
    ;; acAttachmentPointBottomLeft   ->   7
    ;; acAttachmentPointBottomRight   ->   9
    ;; acAttachmentPointMiddleLeft   ->   4
    ;; acAttachmentPointMiddleRight   ->   6
    (+ 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-ArrowheadSize lead_obj 0.5)
  ;; В принципе, строка ниже не требуется — так, для страховки.
  (vla-put-coordinate lead_obj 1 (vlax-3d-point end-point)) lead_obj)
  (vl-load-com)
  (initget 1)
  (setq p1 (getpoint "\nТочка: "))
  (initget 1)
  (setq p2 (getpoint p1 "\nНаправление выноски: "))
;;;  (setq p1 (trans p1 1 0)           ;<- Здесь переводим p1 в МСК
;;;  p2 (trans p2 1 0))                ;<- Здесь переводим p2 в МСК
  (_addleader
    (strcat "Y=" (rtos (nth 1 p1) 2 0))
    (strcat "D=" (rtos (sqrt (+ (expt (nth 0 p1) 2) (expt (nth 1 p1) 2))) 2 0))
    (trans p1 1 0)(trans p2 1 0))(princ))
(princ "\nНаберите в командной строке NE")
Просмотров: 1204
 
Непрочитано 22.11.2014, 16:42
#2
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


потому что гладиолус, никакое ПО не совершенно
gomer вне форума  
 
Непрочитано 23.11.2014, 11:53
#3
Бот
Moderator


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


solo123, просьба изменить название темы "Лисп NEработает" в соответствии с п.4.3. правил форума, в противном случае тема автоматически будет закрыта через 12 часов.

Как переименовать тему?

Сообщение сгенерировано автоматически, отвечать на него не нужно
Бот вне форума  
 
Непрочитано 23.11.2014, 11:54
#4
Кулик Алексей aka kpblc
Moderator

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


solo123, со скобками разберись - это для начала.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Закрытая тема
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Лисп NEработает



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интересно где работают ЛИСП программисты? dextron3 LISP 114 17.12.2017 13:53
Что прописать в acad.lsp чтобы всегда загружались пользовательские лисп команды? overband LISP 43 07.02.2013 14:47
Лисп: моментальное редактирование цифр в предложениях dextron3 LISP 12 27.09.2008 09:33
Лисп для копирования данных нескольких мтекстов по принципу расположения. Red Nova LISP 14 18.06.2008 22:08