从xcel创建图形
我想知道如何根据xcel电子表格中的信息创建绘图。我已经创建了一个电子表格,可以生成瓷砖的宽度、长度和角度,但我想知道如何让autocad看到这一点来创建视图并为其标注尺寸。请给我指出正确的方向! http://www.dotsoft.com/autocell.htm对于某些符合逻辑的实体类型,其“推送”能力有限。
在该页面上向下滚动大约1/3的方向,直到看到“双向链接”
这看起来像是用于将表格导入AutoCAD,如Dotsoft中的XL2CAD
你可能想重读原来的帖子。我认为OP正在寻找基于电子表格中的尺寸绘制实体的东西。
我不明白你说的瓷砖的宽度、长度和角度是什么意思
更好的是,为了更好地理解,您需要附上图纸
也许我能帮你
另一个问题是关于你需要这个程序的哪种语言:Lisp,VBA等等
我认为解决这个问题的最好方法是VBA
富含脂肪的
~'J'~ 对不起,回复时间太长了,我一直忙得不可开交。不幸的是,我不能张贴图纸做公司政策和国际贸易协定。
我正在尝试创建一个VBA程序,该程序将从Excel中生成的参数中绘制矩形。
前提。
我想提示用户输入圆柱体的长度和直径。我想通过VBA将这些值输入到预先存在的Excel电子表格中。
然后,电子表格将确定我需要多少列和几行砖来覆盖上述圆柱体。
电子表格的规则如下:,
砖的长度不能超过9英寸,宽度不能超过3-1/2英寸。
根据用户输入,其厚度也可以在1/2英寸到2英寸之间。
电子数据表计算周长并确定如何用砖均匀地覆盖该区域(尽可能使用9 x 3.5中的大部分)。本质上,它确定了一个多边形,该多边形将尽可能地与直径相匹配,并生成一个新的长度和宽度来覆盖该区域。 我对这样的任务很感兴趣
可以让你做以下事情(不违反政策
您的公司):
准备示例Excel文件作为表格应该如何查看
本表中的数据还准备了一张简单的图纸,其中有完整的解释,
视觉上,我更容易理解后续动作的定义
我已经做了程序的初步部分
从表中定义瓷砖的尺寸,然后在AutoCAD中绘制
如果将此变体安排给您,请将这些文件发送到:
fixo@yandex.ru
富含脂肪的
~'J'~
;|
GET_XL.LSP
Created by Elpanov Evgeniy
842@list.ru
elpanov@gmail.com
Data reading from Microsoft Excel not using Excel.
This code, can read diverse data from all tables.
ARGUMENTS:
A string containing a complete file name, including the path.
(setq tbl "D:\\7.xls")
USAGE:
(GET_xl tbl)
RETURN VFALUES
The list of all pages in a file with all data
|;
(defun rec-rem-dupl (lst)
(if lst
(cons (car lst) (rec-rem-dupl (vl-remove (car lst) (cdr lst))))
) ;_if
) ;_defun
(defun GET_xl (tbl / ADOCONNECT ADORECORDSET LST)
(setq
ADOConnect (vlax-get-or-create-object "ADODB.Connection")
ADORecordset (vlax-get-or-create-object "ADODB.Recordset")
) ;_setq
(if (not
(vl-catch-all-error-p
(vl-catch-all-apply
(function vlax-invoke-method)
(list
ADOConnect
"Open"
(strcat
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
tbl
";Extended Properties=;Excel 8.0;HDR=No"
) ;_strcat
"admin"
""
nil
) ;_list
) ;_vl-catch-all-apply
) ;_vl-catch-all-error-p
) ;_not
(progn
(setq
lst (mapcar
(function
(lambda (l / i c)
(vlax-invoke-method
ADORecordset
"Open"
(strcat "SELECT * FROM [" l "]")
ADOConnect
1
3
nil
) ;_vlax-invoke-method
(setq
i (length
(car
(vlax-safearray->list
(vlax-variant-value
(vlax-invoke-method
ADORecordset
"GetRows"
65535
) ;_vlax-invoke-method
) ;_vlax-variant-value
) ;_vlax-safearray->list
) ;_car
) ;_length
) ;_setq
(vlax-invoke-method ADORecordset "Close")
(while (not (zerop i))
(vlax-invoke-method
ADORecordset
"Open"
(strcat "SELECT * FROM [" l "a" (itoa i) ":IV" (itoa i) "]")
ADOConnect
1
3
nil
) ;_vlax-invoke-method
(setq
c (cons
(car
(apply
(function mapcar)
(cons
'list
(mapcar
(function
(lambda (a)
(mapcar
(function
(lambda (b)
(vlax-variant-value b)
) ;_lambda
) ;_function
a
) ;_mapcar
) ;_lambda
) ;_function
(vlax-safearray->list
(vlax-variant-value
(vlax-invoke-method
ADORecordset
"GetRows"
65535
) ;_vlax-invoke-method
) ;_vlax-variant-value
) ;_vlax-safearray->list
) ;_mapcar
) ;_cons
) ;_apply
) ;_car
c
) ;_cons
i (1- i)
) ;_setq
(vlax-invoke-method ADORecordset "Close")
) ;_while
(if (equal c '((nil) (nil)))
(list l)
(cons l c)
) ;_if
) ;_lambda
) ;_function
(rec-rem-dupl
(caddr
(mapcar
(function
(lambda (a)
(mapcar
(function vlax-variant-value)
a
) ;_mapcar
) ;_lambda
) ;_function
(vlax-safearray->list
(vlax-variant-value
(vlax-invoke-method
(vlax-invoke-method
ADOConnect
"OpenSchema"
4
) ;_vlax-invoke-method
"GetRows"
65535
) ;_vlax-invoke-method
) ;_vlax-variant-value
) ;_vlax-safearray->list
) ;_apply
) ;_caddr
) ;_rec-rem-dupl
) ;_mapcar
) ;_setq
(vlax-invoke-method ADOConnect "Close")
(vlax-release-object ADORecordset)
(vlax-release-object ADOConnect)
(setq ADORecordset nil
ADOConnect nil
) ;_setq
lst
) ;_progn
(progn
(vl-catch-all-apply
'vlax-invoke-method
(list ADOConnect "Close")
) ;_vl-catch-all-apply
(vlax-release-object ADORecordset)
(vlax-release-object ADOConnect)
(setq ADORecordset nil
ADOConnect nil
) ;_setq
nil
) ;_progn
) ;_if
) ;_defun
请更正您的代码。我认为是错误代码。
非常感谢。
页:
[1]