乐筑天下

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

[编程交流] 当你感到无聊时的Lisp程序。

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:32:06 | 显示全部楼层 |阅读模式
... 我是
 
  1. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:bored [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] pt1 pt2 lst cnt gr[b][color=RED])[/color][/b]
  2. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pt1 [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#ff00ff]"\nSelect First Point: "[/color][/b][b][color=RED])[/color][/b]
  3.        pt2 [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#ff00ff]"\nSelect Second Point: "[/color][/b][b][color=RED])[/color][/b]
  4.        lst [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] pt1 pt2[b][color=RED])[/color][/b] cnt [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b]
  5. [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#009900]5[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] gr [b][color=RED]([/color][/b][b][color=BLUE]grread[/color][/b] [b][color=#009900]5[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  6.    [b][color=RED]([/color][/b][b][color=BLUE]redraw[/color][/b][b][color=RED])[/color][/b]
  7.    [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lst
  8.      [b][color=RED]([/color][/b][b][color=BLUE]append[/color][/b] lst
  9.        [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]last[/color][/b] lst[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] gr[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  10.    [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]<[/color][/b] [b][color=#009900]100[/color][/b] cnt[b][color=RED])[/color][/b]
  11.      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lst [b][color=RED]([/color][/b][b][color=BLUE]cddr[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  12.    [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] cnt [b][color=RED]([/color][/b][b][color=BLUE]1+[/color][/b] cnt[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  13.    [b][color=RED]([/color][/b][b][color=BLUE]grvecs[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]append[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rem[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] cnt [b][color=#009900]100[/color][/b][b][color=RED])[/color][/b] [b][color=#009900]255[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  14. [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]

 
享受无聊的乐趣。
肖恩多
[/code]
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 14:37:18 | 显示全部楼层
更简单的方法伙计
 
[code]<br>(defun c:bored (/ pt1 pt2 lst cnt gr)<br>  (vl-load-com)<br>  (setq DisplayObj (vla-get-display (vla-get-preferences (vlax-get-acad-object))))<br>  (setq pt1 (getpoint "\nSelect First Point: ")<br>        pt2 (getpoint "\nSelect Second Point: ")<br>        lst (list pt1 pt2) cnt 0)<br>  (vla-put-ModelCrosshairColor DisplayObj 0); Black<br>  (while (eq 5 (car (setq gr (grread 5))))<br>    (redraw)<br>    (setq lst<br>      (append lst<br>        (list (last lst) (cadr gr))))<br>    (if (< 100 cnt)<br>      (setq lst (cddr lst)))<br>    (setq cnt (1+ cnt))<br>    (grvecs (append (list (rem (/ cnt 100) 255)) lst)))<br>  (princ)<br>  (vla-put-ModelCrosshairColor DisplayObj 16777215); White<br>)<br>[/Code]
回复

使用道具 举报

6

主题

47

帖子

36

银币

初来乍到

Rank: 1

铜币
36
发表于 2022-7-6 14:43:48 | 显示全部楼层
 
谢谢Buzzard,我感到很荣幸——但这个网站上有很多经验丰富的程序员,他们只是“不如我活跃”。
 
祝你的朋友好运
 
 
干杯,艾伦,
 
这是一个很好的选择,我并没有花太多时间思考这个问题,但这是一个很好的解决方案
 
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:46:46 | 显示全部楼层
我只是想到了viewctr,因为我有时使用它来放置计算例程的文本,这样我就不必实际选择放置点,因为我将在填写完所有信息后立即删除它。
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 14:51:38 | 显示全部楼层
不错,李
 
这是我的无聊和你的无聊交织在一起。
 
  1. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:bored  [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] pt1 pt2 lst cnt gr[b][color=RED])[/color][/b]
  2. [i][color=#990099];;;  (vl-load-com)[/color][/i]
  3. [i][color=#990099];;;  (setq DisplayObj (vla-get-display[/color][/i]
  4. [i][color=#990099];;;                     (vla-get-preferences[/color][/i]
  5. [i][color=#990099];;;                       (vlax-get-acad-object))))[/color][/i]
  6. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pt1 [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#ff00ff]"\nSelect First Point: "[/color][/b][b][color=RED])[/color][/b]
  7.        pt2 [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#ff00ff]"\nSelect Second Point: "[/color][/b][b][color=RED])[/color][/b]
  8.        lst [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] pt1 pt2[b][color=RED])[/color][/b] cnt [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b]
  9. [i][color=#990099];;;  (vla-put-ModelCrosshairColor DisplayObj 0) ; Black[/color][/i]
  10. [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#009900]5[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] gr [b][color=RED]([/color][/b][b][color=BLUE]grread[/color][/b] [b][color=BLUE]nil[/color][/b] [b][color=#009900]5[/color][/b] [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  11.    [b][color=RED]([/color][/b][b][color=BLUE]redraw[/color][/b][b][color=RED])[/color][/b]
  12.    [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lst
  13.      [b][color=RED]([/color][/b][b][color=BLUE]append[/color][/b] lst
  14.        [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]last[/color][/b] lst[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] gr[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  15.    [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]<[/color][/b] [b][color=#009900]100[/color][/b] cnt[b][color=RED])[/color][/b]
  16.      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lst [b][color=RED]([/color][/b][b][color=BLUE]cddr[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  17.    [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] cnt [b][color=RED]([/color][/b][b][color=BLUE]1+[/color][/b] cnt[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  18.    [b][color=RED]([/color][/b][b][color=BLUE]grvecs[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]append[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rem[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] cnt [b][color=#009900]100[/color][/b][b][color=RED])[/color][/b] [b][color=#009900]255[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  19. [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b]
  20. [i][color=#990099];;;  (vla-put-ModelCrosshairColor DisplayObj 16777215) ; White[/color][/i]
  21. [b][color=RED])[/color][/b]
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:58:32 | 显示全部楼层
哈哈-辉煌的罗恩
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 15:03:21 | 显示全部楼层
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:07:06 | 显示全部楼层
 
Well, you say that, after spending a bit more time at the TheSwamp, I'm beginning to consider myself a beginner...
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 15:09:58 | 显示全部楼层
Hey, As far as I am concerned, Your number 1 here. I will make my best attempt at it anyway. After all, I have no boss to answer to. But you will be suprised to see that this code was done so easy, Most of the programmers here could have done it. I am just going to enhance it a bit.
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 15:14:22 | 显示全部楼层
man, i know exactly how you feel.
 
just to remove the requirement to pick 2 points...
  1. (defun c:bored  (/ pt1 pt2 lst cnt gr);;;  (vl-load-com);;;  (setq DisplayObj (vla-get-display;;;                     (vla-get-preferences;;;                       (vlax-get-acad-object)))) (setq pt1 (getvar "viewctr")       pt2 (mapcar '(lambda (x) (* x x)) pt1)       lst (list pt1 pt2) cnt 0);;;  (vla-put-ModelCrosshairColor DisplayObj 0) ; Black (while (eq 5 (car (setq gr (grread nil 5 1))))   (redraw)   (setq lst     (append lst       (list (last lst) (cadr gr))))   (if (< 100 cnt)     (setq lst (cddr lst)))   (setq cnt (1+ cnt))   (grvecs (append (list (rem (/ cnt 100) 255)) lst))) (princ);;;  (vla-put-ModelCrosshairColor DisplayObj 16777215) ; White )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 00:05 , Processed in 0.529777 second(s), 83 queries .

© 2020-2025 乐筑天下

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