Adodb.Stream组件详解
作者:分类:默认分类标签:
Adodb.Stream是ADO的Stream对象,提供存取二进制数据或者文本流,从而实现对流的读、写和管理等操作.有下列方法:Cancel 方法使用方法如下Object.Cancel说明:取消执行挂起的异步 Execute 或 Open 方法的调用。Close 方法使用方法如下Object.Close:关闭对像CopyTo 方法使用方法如下Object.CopyTo(destStream,[CharNumber])说明:将对像的数据复制,destStream指向要复制的对像,CharNumber为可选参数,指要复制的字节数,不选为全部复制。Flush 方法使用方法如下Object.Flush说明:LoadFromFile 方法使用方法如下Object.LoadFromFile(FileName)说明:将FileName指定的文件装入对像中,参数FileName为指定的用户名。Open 方法 使用方法如下Object.Open(Source,[Mode],[Options],[UserName],[Password])说明:打开对像,参数说明:Sourece 对像源,可不指定Mode 指定打开模式,可不指定,可选参数如下:adModeRead =1adModeReadWrite =3adMod
总结:Autocad 与 Excel 通讯的...
作者:分类:默认分类标签:
;;总结:Autocad 与 Excel 通讯的一般步骤;;1 建立连接(if (not (setq excel (vlax-get-or-create-object "Excel.Application")) ;_ Excel ActiveX ) (progn (princ "nExcel not Install!") (exit) ;_无法建立时程序退出 ));;2 获得 Workbooks(setq wks (vlax-get excel 'workbooks));;3 用 Workbooks 的 Open 或者 Add 方法打开或者建立新的Workbook(setq shts (vlax-invoke wks 'open fl));;4 获取 excel 的 Sheets (工作簿)(setq sht (vlax-get excel 'sheets));;5 依次处理 Sheet(vlax-for sh sht ...);;6 获取 Sheet 中的 Cells (单元格集合)(vlax-get sh 'Cells);;7 用 item 属性就可以得到指定的单元格了(vlax-get-property cells 'item 1 2);;8 后面就是根据需要对 Cell 进行各种操作
一个简单的将 Excel 中每个 Sheet...
作者:分类:默认分类标签:
;;Author: eachy 2010.06.25(defun c:tt (/ fl excel fn fp wks shts sht na uc nfl cells i j lst maxrows nfp) (if (setq fl (getfiled "Please Select Excel files" "" "xlsx;xls" 8)) ;_excel Filename (progn (if (not (setq excel (vlax-get-or-create-object "Excel.Application")) ;_ Excel ActiveX ) (progn (princ "nExcel not Install!") (exit) ) ) (setq fn (vl-filename-base fl) ;_ Excel FileName fp (vl-filename-directory fl) ;_ Excel File Directory ) (setq wks (vlax-get excel 'workbooks) ;_ Workbooks shts (vlax-invoke wks 'open fl) ;_ Open Excel file , also can use Excel Findfile property ) (setq sht (vlax-get excel 'sheets)) ;_Get Sheets (vlax-for sh sht ;_ Foreach all sheet (setq na (vlax-get sh 'name) ;_ Sheet Name uc (vlax-get sh 'usedrange) ;_UsedRange maxRows (vlax-get (vlax-get uc 'Rows) 'Count) ;_Number of Bottom Row in Used cells (vlax-get sh 'Cells) ;_ActiveSheet Cells i 7 ) (whi
【转载】齐次坐标概念&&透视...
作者:分类:默认分类标签:
原文地址:http://www.alchemy3d.cn/blog/post/4.html[1]透视投影是3D固定流水线的重要组成部分,是将相机空间中的点从视锥体(frustum)变换到规则观察体(Canonical View Volume)中,待裁剪完毕后进行透视除法的行为。在算法中它是通过透视矩阵乘法和透视除法两步完成的。透视投影变换是令很多刚刚进入3D图形领域的开发人员感到迷惑乃至神秘的一个图形技术。其中的理解困难在于步骤繁琐,对一些基础知识过分依赖,一旦对它们中的任何地方感到陌生,立刻导致理解停止不前。没错,主流的3D APIs如OpenGL、D3D的确把具体的透视投影细节封装起来,比如gluPerspective(…)就可以根据输入生成一个透视投影矩阵。而且在大多数情况下不需要了解具体的内幕算法也可以完成任务。但是你不觉得,如果想要成为一个职业的图形程序员或游戏开发者,就应该真正降伏透视投影这
二维图形的几何变换
作者:分类:默认分类标签:
二维图形的几何变换 正如我们在附录中提到的那样,用齐次坐标表示点的变换将非常方便,因此在本节中所有的几何变换都将采用齐次坐标进行运算。二维齐次坐标变换的矩阵的形式是: (image) 这个矩阵每一个元素都是有特殊含义的。(image) 形进行平移变换;[g h]是对图形作投影变换;[i]则是对图形整体进行缩放变换。1)平移变换 (image)2)缩放变换 (image)3)旋转变换(image)(image)(image)4)对称变换(image) 对称变换其实只是a、b、d、e取0、1等特殊值产生的一些特殊效果。例如: 当b=d=0,a=-1,e=1 时有x
Qleader 设置中的某个选项存储位置
作者:分类:默认分类标签:
Qleader 设置中有个“默认提示文字宽度”选项,默认是勾选的,当去除后保持图形,下次打开设置中会保持,这说明该选项是随图保存的,翻遍了Help也没有找到变量控制。经过一番研究,终于找到了存储位置:)1 打开一个新图,什么都不做,直接另存为 dxf2 另开一个新图,运行 Qleader -〉设置-〉去掉“默认提示文字宽度”选项,确认退出,不要标注,另存为 dxf3 用 Uedit 或者其他软件比较两个 dxf,找出不同点经过查找,排除一些无关的差异(比如编辑时间等等),会找到一个 68 的位置由 1 变为 0,初步判断应该是这里(Acad 中 1 和 0 很多地方表示开关),往前翻,看到 Xrecord 字样,再找到前面最近的 5 (5 是句柄标志),打开该 dxf,用 handent 查找这个句柄,会看到是 AcadDim 词典,再次试验 Qleader 命令,勾选时状态:_$ (dictsearch (namedobjdict) "AcadDim")((-1 .
一个文字左对齐并重新编号程序
作者:分类:默认分类标签:
(defunc:tt(/sssslieellldhipvhvxvystr)(if(setqss(ssget'((0."text"))))(progn(setqssl(sslengthss)i-1)(repeatssl(setqe(ssnamess(setqi(1+i)))el(entgete))(ifll(setqll(conselll))(setqll(listel))))(setqll(vl-sortll'(lambda(e1e2)(>(caddr(assoc10e1))(caddr(assoc10e2))))))(setqp(cdr(assoc10(carll)))vx(carp)vy(cadrp)i1)(setqd(getdistp"n行距:"))(setqhi(getdistp(strcat"n字高<"(rtos(cdr(assoc40(carll)))22)">:")))(ifhi(setqvh(cons40hi)))(foreachxll(ifvh(entmod(substvh(assoc40x)x)))(setqstr(vl-string-left-trim""(cdr(assoc1x))))(if(wcmatchstr"[0-9]*")(setqstr(vl-string-left-trim"1234567890"str)el(subst(cons1(strcat(itoai)str))(assoc1x)x)i(1+i))(setqelx))(setqel(subst(list10vxvy0.)(assoc10x)el))(entmodel)(ifd(setqvy(-vyd))) ) ))(princ))
排序设置
作者:分类:默认分类标签:
利用以前写的代码,写了几个排序设置函数1 ea:Num->hz调用格式:(Ea:num->hz string mod)参 数:String - 数字字符串 Mod - T 中文数字,nil 大写中文2 ybl-ent-sort调用格式:(ybl-ent-sort lst mode key vx)参数说明: 1 mode 0 按行 1 按列 2 key (mod = 0) (mod = 1) 1 Y降X升 X升Y降 (左上至右下) 2 Y降X降 X降Y降 (右上至左下) 3 Y升X降 X降Y升 (右下至左上) 4 Y升X升 X升Y升 (左下至右上) 3 vx 行(列)允许误差,为 nil 实取 0 4 lst 表, 格式如下 ((pt1 ent1) (pt2 ent2) ... (ptn entn)) a pt 为 ent 的特征点, ent 可以为 entity 或 vla-object 比如对文字排序,pt 可以使用文字的插入点 b 当 pt 为实数时,vx 为行列最大及最小值的差值,此时 mode key 为任意值 如一组数 (1 3 56 89
一个求点集合的凸包的lisp程序
作者:分类:默认分类标签:
;;;************************************************************************ ;;;一个求点集合的凸包的lisp程序-------------------------------------------- ;;;------采用的算法为礼品包扎法-------------------------------------------- ;;;方法为最右端的点开始处理,将该点作为凸包边界的第一个点P1,从最初的垂直线 ;;;方向绕P1顺时针旋转,直到碰到另一个P2这就是凸包边界的第二个点P2,依此类推 ;;;p2求得p3......直到又重新回到p1,已经考虑了各种退化情况和浮点运算,其算法 ;;;时间不超过O(n.h),其中h是凸包的复杂度,时间还是很快的。大家不妨验证。 ;;;参考文献<<计算几何-算法及其应用>>(第二版),以及参考了其他网站的一些源代码 ;;;------------------------------------------------------------------------ ;;;其中程序主段是核心算法,其他的附加程序为取得点集,画凸包边界线,测试大量 ;;;点集函数处
AutoCAD 2000启动时各个文件加载的...
作者:分类:默认分类标签:
问题: 如果知道AutoCAD 2000启动时各个文件加载的顺序,可能就会明白一个文件对另一个文件的影响。例如,已经在从acad.lsp文件加载的LISP程序中定义了一个函数,但是在启动AutoCAD 2000后,这个函数却不工作。这是因为acaddoc.lsp是在acad.lsp文件之后加载,此函数已经被acaddoc.lsp文件重新定义了。 解决方法: 以下是第一次启动AutoCAD 2000时,AutoCAD、Express Tools和自定义文件的加载顺序。 文件 使用者 acad2000.lsp AutoCAD acad.rx User acad.lsp User acad2000doc.lsp AutoCAD acetutil.fas Express Tools acaddoc.lsp User mymenu.mnc User mymenu.mnl User acad.mnc AutoCAD acad.mnl AutoCAD acetmain.mnc Express Tools acetmain.mnl Express Tools s::startup User 注意: 如果acad.lsp、acaddoc.lsp或MNL文件中包含自定义函数S::STARTUP,那么,创建新图形或打开现有图形时就会调

eachy

  • 文章总数0
  • 画报总数0
  • 画报点击数0
  • 文章点击数0
个人排行
        最近来访( 0 )
        博文分类
        日期归档