hsolon 发表于 2022-7-5 23:55:55

从xcel创建图形

我想知道如何根据xcel电子表格中的信息创建绘图。我已经创建了一个电子表格,可以生成瓷砖的宽度、长度和角度,但我想知道如何让autocad看到这一点来创建视图并为其标注尺寸。
 
请给我指出正确的方向!

rkmcswain 发表于 2022-7-6 00:09:53

http://www.dotsoft.com/autocell.htm对于某些符合逻辑的实体类型,其“推送”能力有限。
 
在该页面上向下滚动大约1/3的方向,直到看到“双向链接”

rkmcswain 发表于 2022-7-6 00:18:11

 
这看起来像是用于将表格导入AutoCAD,如Dotsoft中的XL2CAD
 
你可能想重读原来的帖子。我认为OP正在寻找基于电子表格中的尺寸绘制实体的东西。

fixo 发表于 2022-7-6 00:24:10

 
我不明白你说的瓷砖的宽度、长度和角度是什么意思
更好的是,为了更好地理解,您需要附上图纸
也许我能帮你
另一个问题是关于你需要这个程序的哪种语言:Lisp,VBA等等
我认为解决这个问题的最好方法是VBA
 
富含脂肪的
 
~'J'~

hsolon 发表于 2022-7-6 00:36:27

对不起,回复时间太长了,我一直忙得不可开交。不幸的是,我不能张贴图纸做公司政策和国际贸易协定。
 
我正在尝试创建一个VBA程序,该程序将从Excel中生成的参数中绘制矩形。
 
前提。
 
我想提示用户输入圆柱体的长度和直径。我想通过VBA将这些值输入到预先存在的Excel电子表格中。
 
然后,电子表格将确定我需要多少列和几行砖来覆盖上述圆柱体。
 
电子表格的规则如下:,
 
砖的长度不能超过9英寸,宽度不能超过3-1/2英寸。
根据用户输入,其厚度也可以在1/2英寸到2英寸之间。
 
电子数据表计算周长并确定如何用砖均匀地覆盖该区域(尽可能使用9 x 3.5中的大部分)。本质上,它确定了一个多边形,该多边形将尽可能地与直径相匹配,并生成一个新的长度和宽度来覆盖该区域。

fixo 发表于 2022-7-6 00:42:38

我对这样的任务很感兴趣
可以让你做以下事情(不违反政策
您的公司):
准备示例Excel文件作为表格应该如何查看
本表中的数据还准备了一张简单的图纸,其中有完整的解释,
视觉上,我更容易理解后续动作的定义
我已经做了程序的初步部分
从表中定义瓷砖的尺寸,然后在AutoCAD中绘制
如果将此变体安排给您,请将这些文件发送到:
fixo@yandex.ru
 
富含脂肪的
 
~'J'~

Elpanov Evgeniy 发表于 2022-7-6 00:50:32


;|
    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

minhphuong_humg 发表于 2022-7-6 01:01:00

 
请更正您的代码。我认为是错误代码。
非常感谢。
页: [1]
查看完整版本: 从xcel创建图形