<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>Комментарии на: Использование словарных записей</title>
	<atom:link href="https://autolisp.ru/2012/04/06/dictionaries/feed/" rel="self" type="application/rss+xml" />
	<link>https://autolisp.ru/2012/04/06/dictionaries/</link>
	<description>LISP для AutoCAD</description>
	<lastBuildDate>Tue, 24 Feb 2026 16:11:05 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.0</generator>
	<item>
		<title>От: Кулик Алексей aka kpblc</title>
		<link>https://autolisp.ru/2012/04/06/dictionaries/comment-page-1/#comment-75989</link>
		<dc:creator><![CDATA[Кулик Алексей aka kpblc]]></dc:creator>
		<pubDate>Wed, 24 Jan 2018 17:07:54 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=721#comment-75989</guid>
		<description><![CDATA[Андрей, я не сохранял в словарях сложноструктурированные списки. По-моему, подобное нереализуемо &quot;в лоб&quot;. Можно создавать несколько словарей, можно еще как-то выкрутиться - но не записать &quot;список в списке&quot;.
Хотя нет, вру... Среди кодов Alaspher&#039;a (лежат где-то в Download на dwg.ru) что-то было по поводу записей в словари, если не ошибаюсь.

Евгений, так коды представлены - в чем собственно трудность?]]></description>
		<content:encoded><![CDATA[<p>Андрей, я не сохранял в словарях сложноструктурированные списки. По-моему, подобное нереализуемо "в лоб". Можно создавать несколько словарей, можно еще как-то выкрутиться - но не записать "список в списке".<br />
Хотя нет, вру... Среди кодов Alaspher'a (лежат где-то в Download на dwg.ru) что-то было по поводу записей в словари, если не ошибаюсь.</p>
<p>Евгений, так коды представлены - в чем собственно трудность?</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Евгений</title>
		<link>https://autolisp.ru/2012/04/06/dictionaries/comment-page-1/#comment-75985</link>
		<dc:creator><![CDATA[Евгений]]></dc:creator>
		<pubDate>Wed, 24 Jan 2018 06:22:24 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=721#comment-75985</guid>
		<description><![CDATA[У меня бональная хотелка:
писать/читать/изменять информацию в примитивы на постоянном хранении в чертеже.

Раньше пользовался атрибутами - надоело.

Как пользоваться X записями понимаю не до конца.

Кто поможет готовыми функциями?  - писать/читать/изменять]]></description>
		<content:encoded><![CDATA[<p>У меня бональная хотелка:<br />
писать/читать/изменять информацию в примитивы на постоянном хранении в чертеже.</p>
<p>Раньше пользовался атрибутами - надоело.</p>
<p>Как пользоваться X записями понимаю не до конца.</p>
<p>Кто поможет готовыми функциями?  - писать/читать/изменять</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Андрей</title>
		<link>https://autolisp.ru/2012/04/06/dictionaries/comment-page-1/#comment-75864</link>
		<dc:creator><![CDATA[Андрей]]></dc:creator>
		<pubDate>Fri, 12 Jan 2018 20:20:08 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=721#comment-75864</guid>
		<description><![CDATA[Была задача - хранить в Х-записях чертежа определенную информацию.
В процессе работы считывать ее, записывать снова.
Информация представлена в виде списка, типа &#039;((a1 b1 ... n1) ... (an bn ... nn)).
По представленным кодам так и не смог разместить ее.
Да простые списки добавляются без проблем, но необходимые мне - не получается.
Вопрос - возможно ли размещение подобных списков или стоит искать другой вариант работы с данными?]]></description>
		<content:encoded><![CDATA[<p>Была задача - хранить в Х-записях чертежа определенную информацию.<br />
В процессе работы считывать ее, записывать снова.<br />
Информация представлена в виде списка, типа '((a1 b1 ... n1) ... (an bn ... nn)).<br />
По представленным кодам так и не смог разместить ее.<br />
Да простые списки добавляются без проблем, но необходимые мне - не получается.<br />
Вопрос - возможно ли размещение подобных списков или стоит искать другой вариант работы с данными?</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Алексей</title>
		<link>https://autolisp.ru/2012/04/06/dictionaries/comment-page-1/#comment-75174</link>
		<dc:creator><![CDATA[Алексей]]></dc:creator>
		<pubDate>Fri, 01 Dec 2017 09:34:09 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=721#comment-75174</guid>
		<description><![CDATA[Для работы с переменными кое чего изменил...
[cc lang=&quot;lisp&quot;]
(vl-load-com)

(defun _lispru-ent-dictionary-add (ent datas / dict rec)
                                  ;&#124;
*    Запись в примитив словарных данных
*    Параметры вызова:
  ent    указатель на примитив (графический или нет - неважно)
  datas  список записываемых данных
*    Примеры вызова:
(_lispru-ent-dictionary-add (car (entsel &quot;\nSelect entity : &quot;)) &#039;(&quot;string&quot; 15 nil -16.85))
&#124;;
  (if (setq ent (cond ((= (type ent) &#039;vla-object) ent)
                      ((= (type ent) &#039;ename) (vlax-ename-&gt;vla-object ent))
                      ) ;_ end of cond
            ) ;_ end of setq
    (progn
      (setq dict  (vla-getextensiondictionary ent)
            rec   (vla-addxrecord dict &quot;lispru-dict&quot;)
            datas (mapcar
                    (function
                      (lambda (x)
                        (cons 1 ;_ end of cond
                              (cond
                                ((not x) &quot;&#039;0&quot;)
                                ((= x t) &quot;&#039;1&quot;)
                                (t x)
                                ) ;_ end of cond
                              ) ;_ end of cons
                        ) ;_ end of lambda
                      ) ;_ end of function
                    datas
                    ) ;_ end of mapcar
            ) ;_ end of setq
      (vla-setxrecorddata
        rec
        (vlax-make-variant
          (vlax-safearray-fill
            (vlax-make-safearray vlax-vbinteger (cons 0 (1- (length datas))))
            (mapcar (function car) datas)
            ) ;_ end of vlax-safearray-fill
          ) ;_ end of vlax-make-variant
        (vlax-make-variant
          (vlax-safearray-fill
            (vlax-make-safearray vlax-vbvariant (cons 0 (1- (length datas))))
            (mapcar &#039;eval (mapcar (function cdr) datas)
            ))) ;_ end of vlax-safearray-fill
          ) ;_ end of vlax-make-variant
        ) ;_ end of vla-SetXRecordData
      ) ;_ end of progn
    ) ;_ end of if
  ) ;_ end of defun[cc lang=&quot;lisp&quot;]
[/cc]]]></description>
		<content:encoded><![CDATA[<p>Для работы с переменными кое чего изменил...</p>
<div class="codecolorer-container lisp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br /></div></td><td><div class="lisp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #66cc66;">&#40;</span>vl-load-com<span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">defun</span> _lispru-ent-dictionary-add <span style="color: #66cc66;">&#40;</span>ent datas<span style="color: #66cc66;"> / </span>dict rec<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">;|<br />
* &nbsp; &nbsp;Запись в примитив словарных данных<br />
* &nbsp; &nbsp;Параметры вызова:<br />
&nbsp; ent &nbsp; &nbsp;указатель на примитив (графический или нет - неважно)<br />
&nbsp; datas &nbsp;список записываемых данных<br />
* &nbsp; &nbsp;Примеры вызова:<br />
(_lispru-ent-dictionary-add (car (entsel &quot;\nSelect entity : &quot;)) '(&quot;string&quot; 15 nil -16.85))<br />
|;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> ent <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cond</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span>type ent<span style="color: #66cc66;">&#41;</span> 'vla-object<span style="color: #66cc66;">&#41;</span> ent<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span>type ent<span style="color: #66cc66;">&#41;</span> 'ename<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>vlax-ename-<span style="color: #66cc66;">&gt;</span>vla-object ent<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;_ end of cond</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;_ end of setq</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">progn</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> dict &nbsp;<span style="color: #66cc66;">&#40;</span>vla-getextensiondictionary ent<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rec &nbsp; <span style="color: #66cc66;">&#40;</span>vla-addxrecord dict <span style="color: #ff0000;">&quot;lispru-dict&quot;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; datas <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">mapcar</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">function</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cons</span> <span style="color: #cc66cc;">1</span> <span style="color: #808080; font-style: italic;">;_ end of cond</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cond</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">not</span> x<span style="color: #66cc66;">&#41;</span> <span style="color: #ff0000;">&quot;'0&quot;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> x t<span style="color: #66cc66;">&#41;</span> <span style="color: #ff0000;">&quot;'1&quot;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>t x<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;_ end of cond</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;_ end of cons</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;_ end of lambda</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;_ end of function</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; datas<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;_ end of mapcar</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;_ end of setq</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>vla-setxrecorddata<br />
&nbsp; &nbsp; &nbsp; &nbsp; rec<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>vlax-make-variant<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>vlax-safearray-fill<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>vlax-make-safearray vlax-vbinteger <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cons</span> <span style="color: #cc66cc;">0</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span>- <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">length</span> datas<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">mapcar</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">function</span> <span style="color: #b1b100;">car</span><span style="color: #66cc66;">&#41;</span> datas<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;_ end of vlax-safearray-fill</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;_ end of vlax-make-variant</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>vlax-make-variant<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>vlax-safearray-fill<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>vlax-make-safearray vlax-vbvariant <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cons</span> <span style="color: #cc66cc;">0</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span>- <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">length</span> datas<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">mapcar</span> '<span style="color: #b1b100;">eval</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">mapcar</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">function</span> <span style="color: #b1b100;">cdr</span><span style="color: #66cc66;">&#41;</span> datas<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;_ end of vlax-safearray-fill</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;_ end of vlax-make-variant</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;_ end of vla-SetXRecordData</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;_ end of progn</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;_ end of if</span><br />
&nbsp; <span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;_ end of defun[cc lang=&quot;lisp&quot;]</span></div></td></tr></tbody></table></div>
]]></content:encoded>
	</item>
	<item>
		<title>От: Алексей</title>
		<link>https://autolisp.ru/2012/04/06/dictionaries/comment-page-1/#comment-75173</link>
		<dc:creator><![CDATA[Алексей]]></dc:creator>
		<pubDate>Fri, 01 Dec 2017 08:43:01 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=721#comment-75173</guid>
		<description><![CDATA[Здравствуйте!

Возникает следующая ошибка!

 ошибка: lisp-значение не может быть приведено к данному типу ВАРИАНТА:....]]></description>
		<content:encoded><![CDATA[<p>Здравствуйте!</p>
<p>Возникает следующая ошибка!</p>
<p> ошибка: lisp-значение не может быть приведено к данному типу ВАРИАНТА:....</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: andrew.makhov</title>
		<link>https://autolisp.ru/2012/04/06/dictionaries/comment-page-1/#comment-52438</link>
		<dc:creator><![CDATA[andrew.makhov]]></dc:creator>
		<pubDate>Tue, 08 Jul 2014 09:17:54 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=721#comment-52438</guid>
		<description><![CDATA[... (-2 . )... там имя объекта (должно было быть), его парсер при отправке сообщения уничтожил :)
Да, предположение, именно, на неверную обработку ObjectID, но здесь она внутри vla-GetXrecordData, так что, забыть придется весь метод целиком. Буду прикручивать Handle, он там лучше будет смотреться. :)]]></description>
		<content:encoded><![CDATA[<p>... (-2 . )... там имя объекта (должно было быть), его парсер при отправке сообщения уничтожил <img src="https://autolisp.ru/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /><br />
Да, предположение, именно, на неверную обработку ObjectID, но здесь она внутри vla-GetXrecordData, так что, забыть придется весь метод целиком. Буду прикручивать Handle, он там лучше будет смотреться. <img src="https://autolisp.ru/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Кулик Алексей aka kpblc</title>
		<link>https://autolisp.ru/2012/04/06/dictionaries/comment-page-1/#comment-52437</link>
		<dc:creator><![CDATA[Кулик Алексей aka kpblc]]></dc:creator>
		<pubDate>Tue, 08 Jul 2014 08:10:50 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=721#comment-52437</guid>
		<description><![CDATA[Сугубо ИМХО:
1. Записывать указатель на объект бесполезно. ObjectID меняется от сессии к сесии, лучше бы использовать Handle. Правда, в таком случае возникает вопрос отслеживания корректности данных 
- при копировании-вставке через буфер, 
- после выполнения _.wblock
- при работе через xref
2. По результатам
&lt;blockquote&gt;((-1 . ) (0 . XRECORD) (5 . 123F) (102 . {ACAD_REACTORS) (330 . ) (102 . }) (330 . ) (100 . AcDbXrecord) (280 . 1) (-2 . ))&lt;/blockquote&gt; нормальной работы не видать ;)

Я сильно подозреваю, что это ограничение следующего порядка: ObjectID (черт с ним, будем с ним воевать) - все же целое число, и записывается оно с использованием разрядности AutoCAD. Т.е. в х64 будет оно Int64. А лисп как был 32-битным, так и остался. Соответственно &quot;лишние&quot; разряды обрубаются. 

Может быть, проблема кроется в неверной обработке получения ObjectID: &lt;a href=&quot;http://autolisp.ru/2011/07/07/x32x64objectid/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://autolisp.ru/2011/07/07/x32x64objectid/&lt;/a&gt;.

Сейчас времени на проведение экспериментов нет, сорри.]]></description>
		<content:encoded><![CDATA[<p>Сугубо ИМХО:<br />
1. Записывать указатель на объект бесполезно. ObjectID меняется от сессии к сесии, лучше бы использовать Handle. Правда, в таком случае возникает вопрос отслеживания корректности данных<br />
- при копировании-вставке через буфер,<br />
- после выполнения _.wblock<br />
- при работе через xref<br />
2. По результатам</p>
<blockquote><p>((-1 . ) (0 . XRECORD) (5 . 123F) (102 . {ACAD_REACTORS) (330 . ) (102 . }) (330 . ) (100 . AcDbXrecord) (280 . 1) (-2 . ))</p></blockquote>
<p> нормальной работы не видать <img src="https://autolisp.ru/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /></p>
<p>Я сильно подозреваю, что это ограничение следующего порядка: ObjectID (черт с ним, будем с ним воевать) - все же целое число, и записывается оно с использованием разрядности AutoCAD. Т.е. в х64 будет оно Int64. А лисп как был 32-битным, так и остался. Соответственно "лишние" разряды обрубаются. </p>
<p>Может быть, проблема кроется в неверной обработке получения ObjectID: <a href="http://autolisp.ru/2011/07/07/x32x64objectid/" target="_blank" rel="nofollow">http://autolisp.ru/2011/07/07/x32x64objectid/</a>.</p>
<p>Сейчас времени на проведение экспериментов нет, сорри.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: andrew.makhov</title>
		<link>https://autolisp.ru/2012/04/06/dictionaries/comment-page-1/#comment-52436</link>
		<dc:creator><![CDATA[andrew.makhov]]></dc:creator>
		<pubDate>Tue, 08 Jul 2014 07:57:56 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=721#comment-52436</guid>
		<description><![CDATA[реанимирую немножко тему :)
Столкнулся с &quot;недостатком&quot; работы vla-GetXrecordData на 64 битных системах. Если нужен dbx, то нужен vla-SetXrecordData, а коли так, то и читать хочется с помощью vla-GetXrecordData. Но не тут-то было. Хотим записать в XRECORD указатель на объект. Пишем (с кодом, например, -2, и преобразованием (vlax-make-variant (vlax-ename-&gt;vla-object x)) ) с помощью vla-SetXrecordData. Все хорошо. ((-1 . ) (0 . XRECORD) (5 . 123F) (102 . {ACAD_REACTORS) (330 . ) (102 . }) (330 . ) (100 . AcDbXrecord) (280 . 1) (-2 . )) Имя объекта формируется правильно.
Читаем с помощью vla-GetXrecordData и видим, что вместо указателя на объект расположен массив LONG из двух отрицательных чисел. Похоже, это баг.
Единственное, что нашел в сети по этому поводу - это форум на французском, откуда и понял, что дело в разрядности системы. (http://cadxp.com/topic/38804-safearry-of-long-a-la-place-dun-objectid/)
Вариант теоретический, как сферический конь в вакууме: зачем нужно именно имя объекта в dbx - еще тот вопрос. Ну, например, в качестве библиотеки, которую можно пользовать в разных случаях. Думаю, исправить это нельзя. Только принять к сведению.]]></description>
		<content:encoded><![CDATA[<p>реанимирую немножко тему <img src="https://autolisp.ru/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /><br />
Столкнулся с "недостатком" работы vla-GetXrecordData на 64 битных системах. Если нужен dbx, то нужен vla-SetXrecordData, а коли так, то и читать хочется с помощью vla-GetXrecordData. Но не тут-то было. Хотим записать в XRECORD указатель на объект. Пишем (с кодом, например, -2, и преобразованием (vlax-make-variant (vlax-ename-&gt;vla-object x)) ) с помощью vla-SetXrecordData. Все хорошо. ((-1 . ) (0 . XRECORD) (5 . 123F) (102 . {ACAD_REACTORS) (330 . ) (102 . }) (330 . ) (100 . AcDbXrecord) (280 . 1) (-2 . )) Имя объекта формируется правильно.<br />
Читаем с помощью vla-GetXrecordData и видим, что вместо указателя на объект расположен массив LONG из двух отрицательных чисел. Похоже, это баг.<br />
Единственное, что нашел в сети по этому поводу - это форум на французском, откуда и понял, что дело в разрядности системы. (<a href="http://cadxp.com/topic/38804-safearry-of-long-a-la-place-dun-objectid/" rel="nofollow">http://cadxp.com/topic/38804-safearry-of-long-a-la-place-dun-objectid/</a>)<br />
Вариант теоретический, как сферический конь в вакууме: зачем нужно именно имя объекта в dbx - еще тот вопрос. Ну, например, в качестве библиотеки, которую можно пользовать в разных случаях. Думаю, исправить это нельзя. Только принять к сведению.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Кулик Алексей aka kpblc</title>
		<link>https://autolisp.ru/2012/04/06/dictionaries/comment-page-1/#comment-31669</link>
		<dc:creator><![CDATA[Кулик Алексей aka kpblc]]></dc:creator>
		<pubDate>Wed, 10 Oct 2012 05:30:35 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=721#comment-31669</guid>
		<description><![CDATA[Спасибо, возьму на вооружение :)]]></description>
		<content:encoded><![CDATA[<p>Спасибо, возьму на вооружение <img src="https://autolisp.ru/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Евгений</title>
		<link>https://autolisp.ru/2012/04/06/dictionaries/comment-page-1/#comment-31604</link>
		<dc:creator><![CDATA[Евгений]]></dc:creator>
		<pubDate>Tue, 09 Oct 2012 07:19:26 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=721#comment-31604</guid>
		<description><![CDATA[1. как вариант, почему не организовать список списков как словари в словарях
2. в Xrecord жеж вроде можно список влить, на мой взгляд даже предпочтительней
[cc lang=&quot;cadlisp&quot;](defun kd:setxrecdata (xrec val / sa1 sa2)
  (if (listp val)
    (progn
      (setq sa1 (vlax-safearray-fill
		  (vlax-make-safearray vlax-vbInteger (cons 0  (1- (length val))))
		  (mapcar &#039;(lambda (x) (cond
			       ((= (type x) &#039;STR) 301)
			       ((= (type x) &#039;INT) 451)
			       ((= (type x) &#039;REAL) 140)
			       )
			     ) val)))
      (setq sa2 (vlax-safearray-fill
		(vlax-make-safearray vlax-vbvariant (cons 0 (1- (length val))))
		val))
      (vla-SetXRecordData xrec sa1 sa2)
      )
    (princ &quot;\nkd:setxrecdata : value must be a list&quot;)
    )
  );defun[/cc]]]></description>
		<content:encoded><![CDATA[<p>1. как вариант, почему не организовать список списков как словари в словарях<br />
2. в Xrecord жеж вроде можно список влить, на мой взгляд даже предпочтительней</p>
<div class="codecolorer-container cadlisp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br /></div></td><td><div class="cadlisp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">defun</span> kd:setxrecdata <span style="color: #66cc66;">&#40;</span>xrec val <span style="color: #66cc66;">/</span> sa1 sa2<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">listp</span> val<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">progn</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> sa1 <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">vlax-safearray-fill</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">vlax-make-safearray</span> vlax<span style="color: #66cc66;">-</span>vbInteger <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cons</span> <span style="color: #cc66cc;">0</span> &nbsp;<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">-</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">length</span> val<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">mapcar</span> '<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cond</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">type</span> x<span style="color: #66cc66;">&#41;</span> 'STR<span style="color: #66cc66;">&#41;</span> <span style="color: #cc66cc;">301</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">type</span> x<span style="color: #66cc66;">&#41;</span> 'INT<span style="color: #66cc66;">&#41;</span> <span style="color: #cc66cc;">451</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">type</span> x<span style="color: #66cc66;">&#41;</span> 'REAL<span style="color: #66cc66;">&#41;</span> <span style="color: #cc66cc;">140</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#41;</span> val<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> sa2 <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">vlax-safearray-fill</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">vlax-make-safearray</span> vlax<span style="color: #66cc66;">-</span>vbvariant <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cons</span> <span style="color: #cc66cc;">0</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">-</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">length</span> val<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; val<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>vla<span style="color: #66cc66;">-</span>SetXRecordData xrec sa1 sa2<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">princ</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>kd:setxrecdata : value must be a list&quot;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#41;</span><span style="color: #808080; font-style: italic;">;defun</span></div></td></tr></tbody></table></div>
]]></content:encoded>
	</item>
</channel>
</rss>
