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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Какой код DXF для назначения свойства размерного стиля из системной переменной DIMLFAC?

Какой код DXF для назначения свойства размерного стиля из системной переменной DIMLFAC?

Ответ
Поиск в этой теме
Непрочитано 09.12.2022, 13:06 #1
Какой код DXF для назначения свойства размерного стиля из системной переменной DIMLFAC?
МишаИнженер
 
Регистрация: 14.12.2008
Сообщений: 1,134

Подскажите пожалуйста код DXF для назначения свойства размерного стиля из системной переменной DIMLFAC
В даном коде ЛИСП создается размерный стиль. Только значение системной переменной DIMLFAC почему-то не не учитывается.
С каким кодом DXF надо записывать в "размерный стиль" значение системной переменной DIMLFAC?
Код:
[Выделить все]
 
	(defun set_rp ( NDS ); Задание размерных переменных.
		(*error* (entmakex (list
            (cons 0 "DIMSTYLE")
            (cons 100 "AcDbSymbolTableRecord")
            (cons 100 "AcDbDimStyleTableRecord")
            (cons 2 NDS)
            (cons 70 0)
            (cons 40 (getvar "dimscale")) ;dimscale
            (cons 41 2.5) ;dimsz   
            (cons 42 0.625) ;dimexo  
            (cons 43 3.75) ;dimdli   
            (cons 44 1.25) ;dimexe   
            (cons 45 0.5) ;dimrnd  
            (cons 46 0.0) ;dimdle  
            (cons 140 2.5) ;dimtxt   
            (cons 141 -2.5) ;dimcen  
            (cons 143 0.005) ;dimaltf
            (cons 145 0) ;dimtvp
            (cons 147 0.5) ;dimgap   
            (cons 72 0) ;dimlim
            (cons 73 0) ;dimtih  
            (cons 74 0) ;dimtoh  
            (cons 77 1) ;dimtad  
            (cons 78 8) ;dimzin  
            (cons 79 2) ;dimazin 
            (cons 170 0) ;dimalt
            (cons 172 1) ;dimtofl
            (cons 173 0) ;dimsah   
            (cons 174 0) ;dimtix
            (cons 175 1) ;dimsoxd
            (cons 176 0) ;dimclrd
            (cons 177 0) ;dimclre
            (cons 178 0) ;dimclrt
            (cons 179 1) ;dimadec
            (cons 271 0) ;dimdec   
            (cons 272 0) ;dimtdec
            (cons 275 1) ;dimaunit
            (cons 277 2) ;dimlunit
            (cons 278 44) ;dimdsep 
            (cons 279 0) ;dimtmove
            (cons 280 0) ;dimjust
            (cons 281 0) ;dimsd1
            (cons 282 0) ;dimsd2
            (cons 283 0) ;dimtolj
            (cons 284 8) ;dimtzin
            (cons 288 0) ;dimupt
            (cons 340 (tblobjname "style" (getvar "textstyle"))) ;dimtxtsty
            (cons 371 -2) ;dimlwd
            (cons 372 -2) ;dimlwe
            (cons 342  (_lispru-get-or-create-dimblock "_Oblique"))
            (cons 343  (_lispru-get-or-create-dimblock "_Oblique"))
            (cons 344  (_lispru-get-or-create-dimblock "_Oblique"))
            ) ;_ end of list
		)) ;_ end of setq
	)

  	(defun *error* (msg)
		(princ "error: ")
		(princ msg)
	  	(terpri)
	)
	  
(defun _lispru-get-or-create-dimblock (name / err dimblk)
                                      ;|
*    Получение ename-указателя или создание блока с переданным именем
* Если name попадает под стандартные наименования:
"" || "_DOT"        || "_DOTSMALL" || "_DOTBLANK"    || "_ORIGIN"      ||
   || "_ORIGIN2"    || "_OPEN"     || "_OPEN90"      || "_OPEN30"      ||
   || "_CLOSED"     || "_SMALL"    || "_NONE"        || "_OBLIQUE"     ||
   || "_BOXFILLED"  || "_BOXBLANK" || "_CLOSEDBLANK" || "_DATUMFILLED" ||
   || "_DATUMBLANK" || "_INTEGRAL" || "_ARCHTICK"

*  То используется механизм через (setvar / getvar). В противном случае получается
* указатель на имеющийся блок с таким именем. Если такого блока нет, он создается
* пустым.
*    Примеры вызова:
(_lispru-get-or-create-dimblock "qwert")
(_lispru-get-or-create-dimblock "archtick")
|;
  (cond ((wcmatch (strcase (vl-string-left-trim "_" name))
                  (strcat "\"\",DOT,DOTSMALL,DOTBLANK,ORIGIN,ORIGIN2,"
                          "OPEN,OPEN90,OPEN30,CLOSED,SMALL,"
                          "NONE,OBLIQUE,BOXFILLED,BOXBLANK,CLOSEDBLANK,"
                          "DATUMFILLED,DATUMBLANK,INTEGRAL,ARCHTICK"
                          ) ;_ end of strcat
                  ) ;_ end of wcmatch
         (if (vl-catch-all-error-p
               (setq err (vl-catch-all-apply
                           (function (lambda ()
                                       (setq dimblk (getvar "dimblk"))
                                       (if (= dimblk "")
                                         (setq dimblk ".")
                                         ) ;_ end of if
                                       (setvar "dimblk" (strcat "_" (vl-string-left-trim "_" name)))
                                       (setvar "dimblk" dimblk)
                                       (setq res (tblobjname "block" (strcat "_" (vl-string-left-trim "_" name))))
                                       ) ;_ end of lambda
                                     ) ;_ end of function
                           ) ;_ end of vl-catch-all-apply
                     ) ;_ end of setq
               ) ;_ end of vl-catch-all-error-p
           (setq res (tblobjname "block" (getvar "dimblk")))
           ) ;_ end of if
         (if res
           (cdr (assoc 330 (entget res)))
           ) ;_ end of if
         )
        ((tblobjname "block" name) (cdr(assoc 330 (entget (tblobjname "block" "_archtick")))))
        (t
         (vla-add (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
                  (vlax-3d-point '(0. 0. 0.))
                  name
                  ) ;_ end of vla-add
         (cdr (assoc 330 (entget (tblobjname "block" name))))
         )
        ) ;_ end of cond
  ) ;_ end of defun
Похоже это код 144

Последний раз редактировалось МишаИнженер, 09.12.2022 в 13:17.
Просмотров: 1572
 
Непрочитано 09.12.2022, 13:45
#2
Кулик Алексей aka kpblc
Moderator

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


И когда ты начнешь читать? http://autolisp.ru/wp-content/upload...erence_enu.pdf
Offtop: P.S. Нечасто удается увидеть, как молотком полируют стекла... Понимание функции *error*, ее цели, методов работы и т.д. - в минусах? Области видимости функций и переменных там же?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 09.12.2022, 14:12
#3
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,134


Это код 144
Помогла команда (tblsearch "DIMSTYLE" "ИмяСтиля") запущенная в консоли AutoLisp
МишаИнженер вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Какой код DXF для назначения свойства размерного стиля из системной переменной DIMLFAC?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой код DXF для получения имени стиля таблицы? МишаИнженер LISP 9 04.12.2022 16:39
Код ЛИСП для назначения активного стиля размеров МишаИнженер Программирование 15 25.11.2021 09:35
Почему появляется $0 в названии размерного стиля? Слетает аннотативность. AutoCAD 2016 Lana Colt AutoCAD 4 12.02.2021 10:01
Создание размерного стиля amator Программирование 13 12.04.2009 00:45
Как узнать и изменить значение системной переменной AutoCAD? Tramp Программирование 2 02.03.2006 16:17