乐筑天下

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

[编程交流] DCL对话框代码查询

[复制链接]

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 16:49:53 | 显示全部楼层
欢迎光临Rlx。
 
不幸的是,正在删除文件、文件夹和程序。。。临时文件夹中的etc不是AutoCAD要处理的任务,也不是操作系统要处理的任务,因此需要用户的干预。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:55:52 | 显示全部楼层
我在发布代码时被发现过几次,我将vl文件名mktemp更改为硬编码的文件名和目录,在此之前,我有大约150个文件放在那里,看着它不断增长,这里的一些其他人从未清理过他们的c:“temp”目录,其中一个有大约500个文件。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 16:56:49 | 显示全部楼层
现在这是一个问题,我再也没有了,因为我工作的公司显然提出了一项新政策,每天早上我的电脑启动时都会擦去所有东西,因此每天我的工具栏都会从我的visual lisp编辑器中消失,我写入savefilepath文件夹的设置也会消失。我甚至怀疑有人在竞相屏蔽尽可能多的设置,所以windows 10中所有可以屏蔽的(个人)设置都被屏蔽了。。。
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:03:57 | 显示全部楼层
 
谢谢,我想这需要大量的写作/练习才能达到一个不错的水平。
 
 
你不需要道歉,Rlx-这只是你理解代码的方式。
你的工作给我留下了深刻的印象,这让我好奇,并激励我根据自己的理解重新编写代码。
对我来说,将相同的变量传递给不同的子函数,并将作为一个整体程序的相同子函数连接在一起,这非常令人困惑。
所以我试着遵循Michael Puckett的写作风格,在那里你首先声明了处理输入并返回一些东西所需的子函数。
然后你只需要运行整个程序。。即。:
 
  1. (defun test ( / foo1 foo2 foo3 *error* r ) ; Localise our required subfunctions that help out with the overall performance
  2. (defun foo1 ( input1 ) ; subfunction on-the-fly
  3.    ... ; say if point is provided, prompt for a selection and return it, else nil
  4. )
  5. (defun foo2 ( input2 ) ; subfunction on-the-fly
  6.    ... ; say if a SS is provided, prompt to be filtered by Layer, using dialog with listbox, return list of enames, else nil
  7. )
  8. (defun foo3 ( input3 ) ; subfunction on-the-fly
  9.    ... ; say if a list of enames is provided, erase them - this is the last evaluation and I don't care what it returns
  10. )
  11. (defun *error* (m) ...) ; I use the *error* function as a separator between my on-the-fly subfuns and the main program
  12. (and ; Main Program - nice and clean: only one variable is processed by 3 different subfunctions
  13.    (setq r (getpoint)) ; r = nil ? -> stop evaluating
  14.    (setq r (foo1 r)) ; r = nil ? -> stop evaluating
  15.    (setq r (foo2 r)) ; r = nil ? -> stop evaluating
  16.    (setq r (foo3 r)) ; r = nil ? -> doesn't matter, we're done
  17. ); and
  18. ); defun test
  19. (defun foo4 ( input ) ; subfunction that is used more globally - i.e. its required in (foo2) and (foo3)
  20. ...
  21. ); defun foo4

 
此外,我还尝试使用一种合适的代码格式,这样每个计算都可以很容易地被同化,但这有时会花费太多的行
(只需检查并比较Marko_Ribar和Lee Mac之间的任何大/中代码——一个更喜欢长的一行,另一个写着12行相同的求值)。
我指的是格式风格,因为我不会像你那样编写1-2行的临时dcl代码——只是不是我的写作类型。
 
 
谢谢分享,有空的时候我会查的。
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:10:10 | 显示全部楼层
哦,老兄,这是一个丰富的经验!
 
 
是的,我也是-我做的一个结论是避免代码内部重复,这意味着要做很多列表操作。
 
 
我也是,但我最终得到了相同微小子功能的不同变体,只是因为我找不到其中的一个。lsp例程我已经用过了(所以我可以直接从那里复制)。
下次我会比以前更有条理。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 17:12:38 | 显示全部楼层
我总是以一种有组织的方式开始,但当我完成的时候,我通常会得到很多补丁和肮脏的修复。
 
 
为了给大家留下编码风格改变的印象,或者至少是我的尝试,这就是我目前正在做的工作:
rpl。lsp
Rpl。dcl
RLX批次。lsp
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-2 15:27 , Processed in 1.151744 second(s), 73 queries .

© 2020-2025 乐筑天下

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