乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 100|回复: 3

[编程交流] 将日志打印到excel lisp

[复制链接]

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 15:13:39 | 显示全部楼层 |阅读模式
是否有人拥有或知道一个lisp,它将记录我创建的每个绘图,并将其记录在特定的excel电子表格中,以便我可以向客户计费?
 
非常感谢。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:44:22 | 显示全部楼层
我猜这可以通过反应堆来实现(显然是对“绘图”命令的反应),但您希望在excel工作表中存储何种数据?单是文件名?还是更多?
 
谢谢
 
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 16:12:30 | 显示全部楼层
 
文件名称主要是日期和地块大小。
 
谢谢你的回复李
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 16:26:31 | 显示全部楼层
 
到目前为止,我已经有了这个反应堆,问题是自从我们升级到新版本的office后,它就停止了工作。我收到一条错误消息说,
 
找不到excel类型库?
 
我的反应堆如下,
 
(vlr指令反应堆

“(:vlr命令willstart.CollectPlotInfo))
)
 
(vlr指令反应堆

“(:vlr commandend.ResetPlotInfo))
)
 
;;;(vlr全部删除)
 
;**************************************************************************************************************************
(defun CollectPlotInfo(调用reactor endcommandInfo
/nlist)
 
(设置命令(第n个0端命令信息))
(如果(=命令“绘图”)
(程序
(setq Reset nil)
(setq n 0)
(重复20
(setq n(1+n))
(setq nstring(rtos n 2 0))
(setq nlist(cons nstring nlist))
)
(setq nlist(反向nlist))
 
(setq ActiveDoc(vla get activedocument(vlax get acad object)))
(setq ActiveLayout(vla get ActiveLayout ActiveDoc))
(setq Configname(vla get Configname activelayout))
 
(setq CurrPrinter(vla get ConfigName activelayout))
(如果
(wcmatch CurrPrinter“*平面打印机*”)
(警报
“当前布局默认打印到PLAN-PRINTER。\n PLAN-PRINTER仅用于彩色打印。\n如果此打印为黑白打印,请将打印设备更改为OCE绘图仪。pc3”
)
)
 
(setq Printerlist(vlax safearray->list(vlax variant value(vla getplotdevicenames activelayout)))
 
(if(成员ConfigName PrinterList)
(setq Reset T)
)
 
(setq MediaSize(vla get CanonicalMediaName activelayout))
(setq CentrePlot(vla get Centerplot activelayout))
(setq Plothidden(vla get Plothidden activelayout))
(setq PlotOrigin(vla get PlotOrigin activelayout))
 
(setq PaperUnits(vla get PaperUnits activelayout))
(setq PlotRotation(vla get PlotRotation activelayout))
 
(setq PlotType(vla get PlotType activelayout))
(if(=绘图类型4)(vla getwindowtoplot activelayout“bl”tr))
 
(setq PlotViewportBorders(vla get PlotViewportBorders activelayout))
(setq PlotWithLineweights(vla get PlotWithLineweights Active Layout))
(setq PlotWithPlotStyles(vla get PlotWithPlotStyles ACTIVELLAYOUT))
(setq ScaleLineWeights(vla get ScaleLineWeights activelayout))
(setq PlotViewportBorders(vla get StandardScale activelayout))
(setq StandardScale(vla get StandardScale activelayout))
(setq样式表(vla get StyleSheet activelayout))
(setq UseStandardScale(vla get UseStandardScale activelayout))
 
(if(=UseStandardScale:vlax false)(setq CustomScale(vla getcustomscale activelayout“num”denom)))
 
(SaveChangeToLayout 1)
 
(setq dcl\U id(加载对话框“NumberOfPlots.dcl”))
(如果(不是)(新建对话框“NumberOfPlots”dcl\U id)
)
 
(退出)
)
 
(start_list“NumberOfPlots”)
(mapcar的添加列表)
(end_列表)
 
(action_tile)
“接受”
“(setq编号(get_tile \“NumberOfPlots\”)
(完成对话框)”
)
 
(action_tile)
“取消”
“(done_对话框)”
)
 
(start_对话框)
(unload\u对话框dcl\u id)
 
)
 
)
 
(普林斯)
)
 
(defun ResetPlotInfo(调用反应堆
endcommandInfo/thecommandend命令
文件打开行
DwgPath驱动器号余数
路径列表listpos listend
jobnumber logfilepath文件存在
收件人列表主题
身体
)  ;绘图日志列表
 
 
(设置命令(第n个0端命令信息))
(如果(=命令“绘图”)
(程序
(setq acadplot(vla get plot activedoc))
(setq NumberofPlots(atoi编号))
(如果(
(程序
(vla put NUMBEROFCOPYES acadplot NumberofPlots)
(vla PlotToDevice(vla get plot activedoc))
(vla put NUMBEROFCOPYES acadplot 1)
)
)
 
;;;;原始打印日志文件
(setq LogFileName“L:\\PLOT LOGS\\PLOT LOG.LOG”)
(setq FileOpen(open LogFileName“r”))
(setq行(读取行文件打开))
(while行
(setq行(读取行文件打开))
(setq PlotLogList(cons(列表行)PlotLogList))
)
(setq PlotLogList1(vl remove(car PlotLogList)PlotLogList))
(setq PlotLogList(car PlotLogList1))
(关闭文件打开)
;;;      (foreach PlotLog PlotLogList
;;;(setq DwgPath(car PlotLog))
(setq DwgPath(car PlotLogList))
(setq DRIVELETER(substr DwgPath 1 5))
(如果
(=(strcase DriveLetter)“G:\\P\”)
(程序
(setq余数(substr DwgPath 6))
(setq路径列表(vl字符串->列表余数))
(setq listpos 0)
(虽然
(/=92(第n个listpos路径列表))
(setq listpos(1+listpos))
)
(setq listend(1+listpos))
(setq listpos(+2 listpos))
(虽然
(/=92(第n个列表路径列表))
(setq listend(1+listend))
)
(setq listend(+listend 1))
(setq)
JobNumber(substr remains listpos(-listend listpos))
)
(setq LogFilePath
(strcat“L:\\绘图日志\\”JobNumber.log)
)
)
(setq LogFilePath“L:\\PLOT LOGS\\TRASH.log”)
)
(setq文件存在(findfile LogFilePath))
(如果(不存在文件)
(程序
(setq FileOpen(打开LogFilePath“a”))
(写入行
绘图编号,打印布局,日期和时间,打印人,打印目的,介质大小,打印比例
文件打开
)
(重复(+1 NumberofPlots)(写入行DwgPath FileOpen))
;;;(写入行DwgPath FileOpen)
(关闭文件打开)
(setq recipients_list(list“M。Link@TribalPS.co.uk"))
(setq主题“新建绘图日志文件夹”)
(setq主体
(strcat)
“以下作业编号需要创建excel打印日志文件”
工作编号
)
)
(创建电子邮件
收件人列表主题正文附件列表1)
)
(程序
(setq FileOpen(打开LogFilePath“a”))
(重复(+1 NumberofPlots)(写入行DwgPath FileOpen))
;;;(写入行DwgPath FileOpen)
(关闭文件打开)
)
)
(vl文件删除日志文件名)
(setq FileOpen(open LogFileName“a”))
(写入行
绘图编号,打印布局,日期和时间,打印人,打印目的,介质大小,打印比例
文件打开
)
(关闭文件打开)
;;;      )
;;;;原始打印日志文件
 
 
(如果重置
(程序
(vla put Configname activelayout Configname)
(vla put CanonicalMediaName activelayout MediaSize)
(vla put Centerplot ACTIVELLAYOUT Centerplot)
(vla put Plothidden activelayout Plothidden)
;;;      (vla get PlotOrigin activelayout PlotOrigin)
(vla put PaperUnits ACTIVELLAYOUT PaperUnits)
(vla put PlotRotation ACTIVELLAYOUT PlotRotation)
(vla put PlotType activelayout PlotType)
(vla put PlotViewportBorders ACTIVELLAYOUT PlotViewportBorders)
(vla put PLOTWITH LINEWIGhts ACTIVE LAYOUT PLOTWITH LINEWIGhts)
(vla put PlotWithPlotStyles ACTIVELLAYOUT PlotWithPlotStyles)
(vla put SCALELINEWIGhts ACTIVELLAYOUT SCALELINEWIGhts)
(vla put PlotViewportBorders ACTIVELLAYOUT PlotViewportBorders)
(vla put STANDARSCALE ACTIVELLAYOUT STANDARSCALE)
(vla put样式表activelayout样式表)
(vla put UseStandardScale活动布局UseStandardScale)
 
(vla sendcommand ActiveDoc“regen”)
;;;(vla sendcommand ActiveDoc(strcat“zoom”“p”))
)
)
)
)
(普林斯)
)
 
 
; 杰森·皮尔西
; [arg]-任何值
; 如果提供了非零值,则更改为
; 保存,否则不会保存更改。
; (SaveChangeToLayout无)
; 返回:T
(defun SaveChangeToLayout(arg)
(和
(vl注册表写入
(strcat“HKEY\U CURRENT\U USER\”(vlax产品密钥)
“\\Profiles\”(getvar“cprofile”)
“\\对话框\\绘图”)
“SaveChangeToLayout”
(如果arg“true”“false”)
)
)
)
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 19:10 , Processed in 0.317690 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表