gtxj8193 发表于 2005-2-13 17:48:00

一个块的问题--龙版主请进

龙版主及各位高手大侠们:



本人编程过程中,想对附件的块中的点坐标用Lisp从一个文本文件中取得坐标,再写入块里的ATTDEF,但要求不能打散块。但知识有限,只知道从文件中读取数据,但不知怎样写入。还望龙版主及各位高手大侠们赐教。本人忠心感谢。




gtxj8193 发表于 2005-2-15 21:26:00

我只想到


一、先打散块再用“ssget "X"寻找“ATTDEF"的名称


二、再用改变其(1 . "")的值来改变它的默认值。


三、将其合成块。合成之后其块值会为默认值。


但合成块时在LISP中难以实现,用(command)中的"-BLOCK"命令后其块会消失。


再用插入命令后会再次要你输入其值,如果其块只有一两个则可用“空格“对付,如果


块多了则不好输入,且如不知其块的个数,则LISP跟本不能用。

龙龙仔 发表于 2005-2-16 08:06:00

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">说了那么多但你有提供<FONT face="Times New Roman">-----<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT>


<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">文本吗?<o:p></o:p>


<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">属性与文本的对应关係?<o:p></o:p>


<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">多块时的数据要如何对应文本?<o:p></o:p>

gtxj8193 发表于 2005-2-16 18:00:00

龙版主你好:


这个文本是样式,我想把文本里的数据一一对应用于表格中。


当然,这是我的一个简单的例子,我现在应用的实际程序中比较复杂,


我想通过这个例子来寻找一种更为好用的程序步骤。


非常感谢龙版主能给于回复。


       


龙龙仔 发表于 2005-2-17 08:41:00

(defun C:TT (/ LST BLK)
   (vl-load-com)
   ;;建构表
   (setqLST '((1 0.365)
             (2 0.385)
             (3 0.545)
             (4 0.665)
             (5 0.755)
             (6 0.805)
         )
   )
   ;;选图块
   (setq BLK (vlax-ename->vla-object (car (entsel))))
   ;;填入值
   (MAT_ATT BLK LST)
)(defun MAT_ATT (OBJ LST / ATT X)
   (mapcar
       '(lambda (ATT X)
             (vla-put-textstring ATT (rtos (nth 1 (nth X LST))))
         )
       (vlax-invoke OBJ 'GETATTRIBUTES)
       '(2 4 5 3 1 0)
   )
)
页: [1]
查看完整版本: 一个块的问题--龙版主请进