明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1745|回复: 10

飞哥,帮帮忙!

[复制链接]
发表于 2005-6-2 11:28:00 | 显示全部楼层 |阅读模式
我想把SPLINE上拟合点的坐标值保存到一个EXCEL文件中,但下面的程序没能实现!请帮忙看看!这是我的毕业论文,谢了! (Defun C:SPLL()
(vl-load-com)
(PrinC "\n这是对 Spline 进行数据分析的基本程序...")
(While(progn(setq pen(car(entsel "\n指定一条 Spline: ")))
(/= "LWPOLYLINE"(cdr(assoc 0 (entget pen))))
)
(Alert "所指对象不是 Spline,请重新指定...")
)
(princ "\这是一条:")
(setq s (getstring))
(princ "\请选择原点:")
(setq pt1(getpoint))
(print pt1)
(setq a1(car pt1))
(setq a2(cadr pt1))
(setq ent(entget pen))
(setq ct 0)
(textpage)
(princ"\n 拟合点的坐标值:")
(setq c1(length ent))
(while(< ct c1)
(setq d2(car(nth ct ent)))
(if(= 10 d2)
(progn
(setq d3(cdr(nth ct ent)))
(setq b1(car d3))
(setq b2(cadr d3))
(setq b1(- b1 a1))
(setq b1(abs b1))
(setq b2(- b2 a2))
(setq b2(abs b2))
(print b1)
(print b2)
)
)
(setq ct(+ 1 ct))
)
(print)
(vl-load-com)
(defun DSX-TypeLib-Excel ( / sysdrv tlb)
(setq sysdrv (getenv "systemdrive"))
(cond
( (setq tlb (findfile (strcat sysdrv "\\Program Files\\Microsoft Office\\Office\\Excel8.olb")))
tlb
)
( (setq tlb (findfile (strcat sysdrv "\\Program Files\\Microsoft Office\\Office\\Excel9.olb")))
tlb
)
( (setq tlb (findfile (strcat sysdrv "\\Program Files\\Microsoft Office\\Office\\Excel10.olb")))
tlb
)
( (setq tlb (findfile (strcat sysdrv "\\Program Files\\Microsoft Office\\Office\\Excel.exe")))
tlb
)
( (setq tlb (findfile (strcat sysdrv "\\Program Files\\Microsoft Office\\Office11\\Excel.exe")))
tlb
)
)
)
(defun DSX-Load-TypeLib-Excel ( / tlbfile tlbver out)
(cond
( (null msxl-xl24HourClock)
(if (setq tlbfile (DSX-TypeLib-Excel))
(progn
(setq tlbver (substr (vl-filename-base tlbfile) 6))
(cond
( (= tlbver "9")
(princ "\n初始化 Microsoft Excel 2000...") )
( (= tlbver "8")
(princ "\n初始化 Microsoft Excel 97...") )
( (= (vl-filename-base tlbfile) "Excel.exe")
(princ "\n初始化 Microsoft Excel 2003...")
)
)
(vlax-import-type-library
:tlb-filename tlbfile
:methods-prefix "msxm-"
:properties-prefix "msxp-"
:constants-prefix "msxc-"
)
(if msxl-xl24HourClock (setq out T))
)
)
)
( T (setq out T) )
)
out
)
(defun DSX-Open-Excel-New (dmode / appsession)
(princ "\n创建一个新的 Excel 电子表格文件...")
(cond
( (setq appsession (vlax-create-object "Excel.Application"))
(vlax-invoke-method (vlax-get-property appsession 'WorkBooks) 'Add)
(if (= (strcase dmode) "SHOW")
(vla-put-visible appsession 1)
(vla-put-visible appsession 0)
)
)
)appsession
)
(defun DSX-Excel-Put-RowList (lst startrow startcol)
(foreach itm lst
(msxl-put-value
(DSX-Excel-Get-Cell range startrow startcol)
itm
)
(setq startcol (1+ startcol))
)
)
)
发表于 2005-6-2 13:08:00 | 显示全部楼层
后面的关于EXCEL操作的函数,你定义了,却没有使用啊,,,没用,怎么能实现功能呢?


还有,函数要先定义再使用,所以你定义函数的部分应该放到前面。。。
发表于 2005-6-2 15:20:00 | 显示全部楼层
  1. ;;这个也能做毕业论文??
  2. (defun C:SPLL (/ S1 FILE)
  3.    (vl-load-com)
  4.    (prompt "\nSelect Spline: ")
  5.    (if (setq S1 (ssget ":E:S" '((0 . "SPLINE"))))
  6.        (progn
  7.            (setq FILE (open "C:\\AA.CSV" "W"))
  8.            (write-line "拟合点的座标值:" FILE)
  9.            (mapcar '(lambda (X)
  10.      (if (= (car X) 10)
  11.          (write-line (vl-princ-to-string (cdr X)) FILE)
  12.      )
  13.                )
  14.              (entget (ssname S1 0))
  15.            )
  16.            (close FILE)
  17.        )
  18.    )
  19.    (princ)
  20. )
发表于 2005-6-2 15:43:00 | 显示全部楼层
龙版主的程序真是精悍。
 楼主| 发表于 2005-6-2 17:38:00 | 显示全部楼层
飞哥,关键我不知把那些函数放在哪,因为做毕业设计才接触这个语言,所以我懂得很少,希望飞哥帮忙编辑一下 !
 楼主| 发表于 2005-6-3 15:20:00 | 显示全部楼层
龙版主,你写的程序,好象运行不出来!是不是错了!
发表于 2005-6-3 15:49:00 | 显示全部楼层
龙版,服了


真简练
发表于 2005-6-3 15:52:00 | 显示全部楼层
ssget ":E:S"和ssget "x"有什么区别呀


呵呵
发表于 2005-6-3 16:55:00 | 显示全部楼层
lxz0929发表于2005-6-3 15:20:00龙版主,你写的程序,好象运行不出来!是不是错了!

错了吗?请指教...... 运行不出来,可能是你版本太低!
发表于 2005-6-3 17:11:00 | 显示全部楼层
对呀!


ssget ":E:S"和ssget "x"有什么区别呀?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 11:50 , Processed in 0.210303 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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