Тема: Замена текста в размерах

Столкнулся с необходимостью изменить в размерах на чертежах текстовую строку, а именно получить в тексте вместо " +" просто "+" без пробела, при этом все остальное оставить без изменений.
Делаю список нужных размеров следующим образом:

(setq nabor (ssget "X" (list (cons 0 "DIMENSION")(cons 1 "* +*"))))

А дальше не хватает знаний как заменить значения по коду 1, т.е. получить вместо " +", просто "+".

Буду благодарен за помощь.

Re: Замена текста в размерах

vl-string-subst

Re: Замена текста в размерах

Спасибо, разобрался. Сделал вот так:

(vl-load-com)
(setq nabor (ssget "X" (list (cons 0 "DIMENSION")(cons 1 "* +*"))))
(setq setlength (sslength nabor)); dlina nabora
(setq i -1)
(repeat setlength
(setq i (+ 1 i))
  (setq b (entget(ssname nabor i)))
  (setq c (cdr (assoc 1 b)))
  (setq a (vl-list->string (vl-remove 32 (vl-string->list c))));ubiraet probely 
  (vlax-put (vlax-ename->vla-object (ssname nabor i))"TextOverride" a)
)

(изменено: pan, 26 ноября 2012г. 15:14:58)

Re: Замена текста в размерах

shoko_zajaz пишет:

Столкнулся с необходимостью изменить в размерах на чертежах текстовую строку, а именно получить в тексте вместо " +" просто "+" без пробела, при этом все остальное оставить без изменений.

А это нужно получить именно лиспом?
Просто обычная команда AutoCAD FIND с этой задачей легко справляется.

Re: Замена текста в размерах

А это нужно получить именно лиспом?
Просто обычная команда AutoCAD FIND с этой задачей легко справляется.

Обычной командой find не получилось - похоже в перезаписанных размерах не ищет она. В итоге на LISP получилось все очень удобно - одна кнопка и все готово.