Пользовательские переменные AutoCAD - PullRequest
0 голосов
/ 13 декабря 2011

Можно ли использовать локальные переменные в файле DWG и отображать их в текстовых объектах?

Например, мне нужно нумеровать объекты, начиная с некоторого значения:

value0 = 5
value1 = value0 + 1
value2 = value0 + 2
etc...

Могу ли яположить значение1 и значение2 в какой-нибудь текстовый объект на моем чертеже?

Ответы [ 3 ]

2 голосов
/ 13 декабря 2011

Пользовательские переменные, безусловно, будут работать. Имейте в виду, что их количество ограничено, и другие программы могут также устанавливать их без вашего ведома. Если вы хотите, чтобы простые значения отображались в виде текста, AutoCAD может это сделать. Объем переменных зависит от вас и API, которые вы выбираете. (VB, VBA, AutoLisp, .NET и т. Д.) В файле dwg доступны другие варианты хранения данных.

1 голос
/ 06 января 2012

Это поможет узнать, какой язык вы предпочитаете использовать. Это очень легко сделать с помощью AutoLISP. Предположим, что вы хотите, чтобы программа запросила у пользователя число, а затем пошагово пошагово увеличивает это число и последовательно помещает приращения в текст чертежа (скажем, номера партий).

Вот небольшой и рабочий пример того, как вы будете делать что-то вроде этого:

(defun c:consecunum ( / entget_in entsel_in value_in value_out)
  (setq 
    value_in (getint "\nFirst number: ")
    value_out value_in
  )
  (while (setq entsel_in (entsel (strcat "\nText to replace with \"" (itoa value_out) "\": ")))
    (setq entget_in (entget (car entsel_in)))
    (entmod
      (subst
        (cons 1 (itoa value_out))
        (assoc 1 entget_in)
        entget_in
      )
    )
    (setq value_out (1+ value_out))
  )
)

Если у вас есть какие-либо вопросы о том, как это работает, не стесняйтесь спрашивать.

1 голос
/ 13 декабря 2011

Чтобы отобразить целое число в объекте TEXT или MTEXT (или атрибуте), вы вставляете поле, выберите DieselExpression в качестве типа поля и введите свое выражение.Это можно сделать и для других типов данных.

Для задачи доступны различные пользовательские переменные.Для достижения вышеизложенного введите в командной строке AutoCAD следующее:

setvar useri1 5 (устанавливает значение целочисленного значения пользователя равным 5)

Затем вы можете использовать следующие DieselExpressions в полях внутри различныхтекстовые объекты:

$(getvar, useri1) (получает значение useri1)

$(+,$(getvar,useri1),1) (добавьте 1 к значению useri1)

$(+,$(getvar,useri1),2) (добавьте 2 кзначение useri1)

и т.д ...

...