明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2582|回复: 1

绘制表格程序错误

[复制链接]
发表于 2012-1-30 06:44:47 | 显示全部楼层 |阅读模式
本帖最后由 millermin 于 2012-1-31 11:17 编辑

同志们新年好!

整了一个程序,从excel读数据写入cad的表格里。表格2000x800(因为比例是1:100),字高250.随便新开一个图形文件试用程序时发现,如果显示范围小一些,比表格占用面积小点,程序运行正常,但是发现有几种情况程序不能正常工作,主要表现是y坐标常常算错,导致多行重叠同时有缺行。这几种情况有:1. 显示范围比较宽大,比整个表格大许多倍,2. 远离原点的位置,就是说坐标值很大的地方。3. 坐标系统被旋转过,就是viewtwist 值不等于0. 实在不明白什么原因。感觉某些语句好像没有执行一样。请帮助查找原因。使用的excel表格最好有20列数行以上。小表格也不容易出错。程序如下:

(defun c:tab(/ x y row col i k pt word)
(vl-load-com)
(setvar "cmdecho" 0)
(setq bp (getpoint "\nENTER A BASE POINT:"))
(setq col(getint "\nENTER THE TOTAL COLUMN OF THE TABLE:"))
(setq row(getint "\nENTER THE TOTAL ROW OF THE TABLE:"))
(setq i 1) ;;;; column--A
(setq k 1) ;;;; row--n
(setq y (- (cadr bp) 0.0))  ;用于调整数字在表格的竖向位置。
(repeat row
  (setq x (+ (car bp) 1000.0))   
  (repeat col
     
     (setq pt(list x y 0))
     (setq word(rexcel k i))
     (command "text" "j" "c" pt 250 0 word)
     (setq x (+ x 2000.0))
     (setq i (+ 1 i))  
   )
   (setq i 1)
   (setq k (+ 1 k))
   (setq y (- y 800.0))
)
  (princ)
)
(defun rexcel(n A)
(setq excelapp0 (vlax-get-object "Excel.Application"));;excel program object
(setq activeworkbook0 (vlax-get-property excelapp0 'ActiveWorkbook));;excel workbook object
(setq activesheet0 (vlax-get-property activeworkbook0 'ActiveSheet));;excel sheet object
(setq cells0 (vlax-get-property activesheet0 'cells));;excel cell object
(setq a1 (vlax-get-property cells0 'item n A))   ;;A1
(setq a1-value (vlax-variant-value (vlax-get-property (vlax-variant-value a1) 'text))) ;;or 'value or 'text
)




发表于 2012-1-30 08:14:28 | 显示全部楼层
未测,请先关闭捕捉再试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-6-9 04:14 , Processed in 0.231040 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表