乐筑天下

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

[编程交流] 使用Autolisp绘制pline。

[复制链接]

4

主题

12

帖子

8

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 18:26:14 | 显示全部楼层
 
好的,我知道了,所以每次我用LISP编写AutoCAD命令时,最好添加下划线和前缀,并在点输入中使用“non”,谢谢!
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 18:31:00 | 显示全部楼层
我知道这个帖子已经过时了,但我最近在练习/玩这些:
  1. ; Grrr
  2. ; Another attempt for emaking pline (loop with cond behaviour):
  3. (defun C:test ( / oldcmd ptx pt ptlst cnt )
  4. (setq oldcmd (getvar 'cmdecho))
  5. (while T
  6.         (setvar 'cmdecho 0)
  7.         (initget 1 "D Done")
  8.         (while
  9.                 (cond
  10.                         (
  11.                                 (not
  12.                                         (if ptx
  13.                                                 (setq pt (getpoint "\nSpecify point or [Done]: " ptx))
  14.                                                 (setq pt (getpoint "\nSpecify point or [Done]: " ))
  15.                                         )
  16.                                 )
  17.                                 (princ "\nYou must specify a point!")
  18.                         )
  19.                         ( (and (= (type pt) 'LIST) (not (or (= (type pt) 'STR) (= pt "") )) )
  20.                                 (setq ptx pt)
  21.                                 (setq ptlst (cons pt ptlst))
  22.                                 (if (>= (length ptlst) 2)
  23.                                         (progn
  24.                                                 (setq cnt 0)
  25.                                                 (redraw)
  26.                                                 (repeat (length ptlst)
  27.                                                         (if (nth (+ cnt 1) ptlst)
  28.                                                                 (progn
  29.                                                                         (grdraw (nth cnt ptlst) (nth (+ cnt 1) ptlst) 2 3)
  30.                                                                         (setq cnt (+ cnt 1))
  31.                                                                 )
  32.                                                         )
  33.                                                 )
  34.                                         )
  35.                                 )
  36.                         )
  37.                         (       
  38.                                 (or
  39.                                         (and (wcmatch pt "DONE") (>= (length ptlst) 2) )
  40.                                         (and (wcmatch pt "D") (>= (length ptlst) 2) )
  41.                                 )
  42.                                 (redraw)
  43.                                 (if
  44.                                         (and
  45.                                                 (entmake '( (0 . "POLYLINE") (66 . 1)))
  46.                                                 (setq cnt 0)
  47.                                                 (repeat (length ptlst)
  48.                                                         (entmake (list (cons 0 "VERTEX") (cons 10 (nth cnt ptlst))))
  49.                                                         (setq cnt (+ cnt 1))
  50.                                                 )
  51.                                                 (entmake '((0 . "SEQEND")))
  52.                                         )
  53.                                         (progn
  54.                                                 (setq ptx nil)
  55.                                                 (setq pt nil)
  56.                                                 (setq ptlst nil)
  57.                                                 (setq cnt nil)
  58.                                         )
  59.                                 )
  60.                         )
  61.                 );cond
  62.         )
  63.         (setvar 'cmdecho oldcmd)
  64. )
  65. (princ)
  66. )

由于我的grread练习:
  1. 8

我以前也见过类似的LISP,但当我试图使用grread分析光标移动并按下LMB时,意外地得到了这个结果。
回复

使用道具 举报

14

主题

206

帖子

9

银币

后起之秀

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

铜币
257
发表于 2022-7-5 18:34:49 | 显示全部楼层
我打赌wwx95是中国人
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 10:19 , Processed in 0.527989 second(s), 56 queries .

© 2020-2025 乐筑天下

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