乐筑天下

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

[编程交流] Lisp错误无法工作帮助我

[复制链接]

4

主题

19

帖子

15

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 20:04:35 | 显示全部楼层 |阅读模式
几年前我编写了这个例程,它允许使用
3个例程(Login\u name)(Log\u name\u old)最初是Log\u name和(警告2)。基本上,在(login\u name)(log\u name)中键入密码会评估密码,如果密码错误,(警告2)将退出AutoCAD,否则将继续进入AutoCAD。
 
 
我试图通过重写(Log_name)和添加(警告3和4)来修改例程,以允许3次登录。总的来说,我认为它的结构很好,但工作不正常。我无法通过第一次尝试(计数总是1),即使我键入正确的密码,它也会挂起,表明它卡在“While”循环中。在第一次尝试后,我现在得到一个符号1错误。我知道我很接近,但需要帮助。下面是我的代码,下面是子程序。在Acad中。lsp文件中有一个开关,表示运行这些例程是否需要登录。
 
 
如果有人能帮上忙,我会非常感激,我花了很多晚上努力使这项工作顺利进行。
 
 
谢谢Jim
 
 
  1. ;;;-------------------------------------------------------------------------
  2. (defun login_name ()
  3. (se)
  4. (setq olderr *error*
  5. *error* clyerr
  6. )
  7. (if (= "DRAWING1.DWG" (strcase (getvar "dwgname")))
  8.    (progn
  9.      (setq num (load_dialog "wpa"))
  10.      (new_dialog "wpa" num)
  11.      (set_tile "tname" "**********")
  12.      (set_tile "msg2" mess_2)
  13.      (mode_tile "tname" 2)
  14.      (logo)
  15.      (action_tile "accept" "(do_txt)(done_dialog)")
  16.      (start_dialog)
  17.      (unload_dialog num)
  18.    )
  19. )
  20. )
  21. (defun do_txt ()
  22. (setq logn (get_tile "tname"))
  23. )
  24. ;;;-------------------------------------------------------------------------
  25. (defun Log_name_old ()
  26. (setq olderr *error*
  27. *error* clyerr
  28. )
  29. (setq filename (open "c:/WPA_CAD2014/ser.dat" "r"))
  30. (setq Logn_name (read-line filename))
  31.   (setq enable_logon (read-line filename));***REMOVE THIS LINE
  32. (close filename)
  33. (if (= "DRAWING1.DWG" (strcase (getvar "dwgname")))
  34.    (progn
  35.      (IF (/= (strcase LOGN_NAME) (strcase LOGN))
  36. (warning2)
  37.      )
  38.    )
  39. )
  40. )
  41. (defun Log_name ()
  42. (setq olderr *error*
  43. *error* clyerr
  44. )
  45. (setq filename (open "c:/WPA_CAD2014/ser.dat" "r"))
  46. (setq Logn_name (read-line filename))
  47. (setq enable_logon (read-line filename));***REMOVE THIS LINE
  48. (close filename)
  49. (setq count 1);;;Initialize counter
  50.    (While (< count 4)
  51.     (if (= "DRAWING1.DWG" (strcase (getvar "dwgname")))
  52.        (progn
  53.          (IF (/= (strcase LOGN_NAME) (strcase LOGN))
  54.           (progn
  55.            (cond
  56.              (( = count 1)(warning3))
  57.          (( = count 2)(warning4))
  58.       (( = count 3)(warning2))
  59.            );close cond
  60.           );close progn
  61.          );close if
  62.         );close progn
  63.     );close if
  64.     (set count (+ count 1))
  65.    );;;Close While
  66. );end file
  67. ;;;-------------------------------------------------------------------------
  68. (defun Warning2 ()
  69. (se)
  70. (setq olderr *error*
  71. *error* clyerr
  72. )
  73. ;;;(beep)
  74. (setq num (load_dialog "wpa3.dcl"))
  75. (new_dialog "wpa3" num)
  76. (set_tile "msg2" mess_2)
  77. (action_tile "accept" "(done_dialog)")
  78. (logo)
  79. (start_dialog)
  80. (unload_dialog num)
  81. (command ".quit" "y")
  82. (princ)
  83. )
  84. ;;;-------------------------------------------------------------------------
  85. (defun Warning3 ()
  86. (se)
  87. (setq olderr *error*
  88. *error* clyerr
  89. )
  90. ;;;(beep)
  91. (setq num (load_dialog "wpa31.dcl"))
  92. (new_dialog "wpa31" num)
  93. (set_tile "msg2" mess_2)
  94. (action_tile "accept" "(done_dialog)")
  95. (logo)
  96. (start_dialog)
  97. (unload_dialog num)
  98. (login_name)
  99. ;;;(command ".quit" "y")
  100. (princ)
  101. )
  102. ;;;-------------------------------------------------------------------------
  103. (defun Warning4 ()
  104. (se)
  105. (setq olderr *error*
  106. *error* clyerr
  107. )
  108. ;;;(beep)
  109. (setq num (load_dialog "wpa32.dcl"))
  110. (new_dialog "wpa32" num)
  111. (set_tile "msg2" mess_2)
  112. (action_tile "accept" "(done_dialog)")
  113. (logo)
  114. (start_dialog)
  115. (unload_dialog num)
  116. (login_name)
  117. ;;;(command ".quit" "y")
  118. (princ)
  119. )
  120. ;;;-------------------------------------------------------------------------
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 20:11:21 | 显示全部楼层
请阅读代码发布指南并编辑您的帖子,将代码包含在代码标签中。
回复

使用道具 举报

4

主题

19

帖子

15

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 20:18:46 | 显示全部楼层
您好,SLW210,
 
 
我试图通过阅读你的链接将代码放入其中,但编辑并不能做到这一点,所以我写了一篇新帖子,复制并粘贴了文本,选择代码并按下“#”,但正如你在我的新帖子中看到的一样。。。。。。太令人沮丧了!!!!你能帮助我吗
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:19:49 | 显示全部楼层
只需在开头键入[c o d e],在结尾键入[c o d e],不带空格
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 20:25:06 | 显示全部楼层
正如BIGAL所示,您只需手动添加它们,这次我为您修复了它。我删除了你的另一个帖子,不需要重复帖子。
回复

使用道具 举报

4

主题

19

帖子

15

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 20:30:22 | 显示全部楼层
非常感谢你这次的帮助
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-5 20:35:35 | 显示全部楼层
这是首次启动autocad会话吗?
回复

使用道具 举报

4

主题

19

帖子

15

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 20:42:22 | 显示全部楼层
是的,它只适用于第一次启动时绘图是drawing1。图纸
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-5 20:48:23 | 显示全部楼层
如果我们可以尝试你现在拥有的,我们可以进一步帮助你,如果你不介意发布其余的代码,请这样做,节省了我们试图找出最终结果的时间。
 
我认为这个问题很容易,而且可能比你现在的问题要短。
回复

使用道具 举报

4

主题

19

帖子

15

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 20:51:42 | 显示全部楼层
好的,在Acad lisp文件中,代码的平衡如下,它是通过读取外部文件“1”来触发的。运行例程“0”不运行
请不要,我已经手动添加了“[”括号来正确放置代码,希望它能工作!!!
 
 
[(如果(=启用登录“1”)
(程序
(登录名)
(log_名称)
)
)]
所有的基本代码如上所述,(SE)代码是无关的,因为它是在我所有的LISP到,如果删除将stll的工作OK。
 
 
以下是DCL代码
 
 
[WPA.DCL
图标:图像
{
固定宽度=true;
颜色=0;
宽度=20;
高度=7;
key=“图标”;
}
wpa:对话框{
布局=水平;
label=“wpa\U cad授权”;
初始焦点=“tname”;
:群集{
布局=垂直;
:boxed_列{
label=“登录密码:”;
:编辑框{
label=“输入登录密码:”;
宽度=40;
key=“tname”;
}
:文本{
标签=“”;
对齐=居中;
}
}//闭合装箱列
//:列{
//图标;
用于警告的WPA3.DCL 2
图标:图像
{
固定宽度=true;
颜色=0;
宽度=20;
高度=7;
key=“图标”;
}
wpa3:对话框{
布局=水平;
label=“wpa\U cad警报!”;
:群集{
布局=垂直;
:boxed_列{
label=“未经授权使用:”;
:文本{
label=“您的密码不被接受”;
对齐=居中;
}
 
:文本{
label=“未经授权的用户…wpa\U cad已禁用”;
对齐=居中;
}
}  
:行{
固定宽度=true;
对齐=居中;
:按钮{
键=“接受”;
标签=“OK”;
宽度=8;
助记符=“O”;
is_default=true;
is_cancel=true;
}
}
:文本{
key=“msg2”;
对齐=居中;
}
}
:列{
偶像
垫片;
//垫片;
}
 
}
警告3的WPA31.DCL
图标:图像
{
固定宽度=true;
颜色=0;
宽度=20;
高度=7;
key=“图标”;
}
wpa31:对话框{
布局=水平;
label=“wpa\U cad警报!”;
:群集{
布局=垂直;
:boxed_列{
label=“拒绝访问:”;
:文本{
label=“您的密码不正确”;
对齐=居中;
}
 
:文本{
label=“还剩2次尝试”;
对齐=居中;
}
}  
:行{
固定宽度=true;
对齐=居中;
:按钮{
键=“接受”;
标签=“OK”;
宽度=8;
助记符=“O”;
is_default=true;
is_cancel=true;
}
}
:文本{
key=“msg2”;
对齐=居中;
}
}
:列{
偶像
垫片;
//垫片;
}
 
}
WPA。DCL32用于警告4
图标:图像
{
固定宽度=true;
颜色=0;
宽度=20;
高度=7;
key=“图标”;
}
wpa32:对话框{
布局=水平;
label=“wpa\U cad警报!”;
:群集{
布局=垂直;
:boxed_列{
label=“拒绝访问:”;
:文本{
label=“您的密码不正确”;
对齐=居中;
}
 
:文本{
label=“上次尝试”;
对齐=居中;
}
}  
:行{
固定宽度=true;
对齐=居中;
:按钮{
键=“接受”;
标签=“OK”;
宽度=8;
助记符=“O”;
is_default=true;
is_cancel=true;
}
}
:文本{
key=“msg2”;
对齐=居中;
}
}
:列{
偶像
垫片;
//垫片;
}
 
}]
 
 
提前谢谢你
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 08:53 , Processed in 1.905330 second(s), 72 queries .

© 2020-2025 乐筑天下

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