乐筑天下

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

[编程交流] 夹板Lisp程序

[复制链接]

32

主题

98

帖子

66

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
160
发表于 2022-7-5 16:35:52 | 显示全部楼层 |阅读模式
大家好,
 
想知道是否有一个lisp例程可以绘制一个矩形,然后将内角连接起来,在矩形的内侧生成一个“X”。
 
谢谢你一如既往的帮助
乔伊·G
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 16:43:07 | 显示全部楼层
  1. (defun c:test (/ c1 c2)
  2.   (and (setq c1 (getpoint "\nSpecify first point :"))
  3.         (setq c2 (getcorner "\nSpecify opposite corner :" c1))
  4.         (vl-cmdf "_.rectang" "_non" c1 "_non" c2)
  5.         (mapcar '(lambda (q p) (entmake (list '(0 . "LINE")(cons 10 q) (cons 11 p))))
  6.                            (list c1 (list (car c2) (cadr c1)))
  7.                            (list c2 (list (car c1) (cadr c2))))
  8.      )
  9. (princ))
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 16:47:30 | 显示全部楼层
http://www.cadtutor.net/forum/showthread.php?98988-所选矩形对角线的Lisp&p=673969&viewfull=1#post673969
回复

使用道具 举报

32

主题

98

帖子

66

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
160
发表于 2022-7-5 16:54:47 | 显示全部楼层
那真是太棒了!!非常感谢。也感谢李的链接。谢谢大家
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 16:56:54 | 显示全部楼层
不客气。
回复

使用道具 举报

32

主题

98

帖子

66

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
160
发表于 2022-7-5 17:05:46 | 显示全部楼层
特瓦瓦。。。这段代码一直工作得很好!!!你能修改一下吗?把矩形放在一个特定的层上?
回复

使用道具 举报

35

主题

140

帖子

108

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
177
发表于 2022-7-5 17:05:59 | 显示全部楼层
  1. (defun c:test (/ c1 c2)
  2. (setq olayer (getvar 'clayer))
  3. (setvar 'clayer "0")
  4.   (and (setq c1 (getpoint "\nSpecify first point :"))
  5.         (setq c2 (getcorner "\nSpecify opposite corner :" c1))
  6.         (vl-cmdf "_.rectang" "_non" c1 "_non" c2)
  7.         (mapcar '(lambda (q p) (entmake (list '(0 . "LINE")(cons 10 q) (cons 11 p))))
  8.                            (list c1 (list (car c2) (cadr c1)))
  9.                            (list c2 (list (car c1) (cadr c2))))
  10.      )
  11. (setvar 'clayer olayer)
  12. (princ))

 
您需要将图层从“0”更改为您想要的任何内容:
  1. (setvar 'clayer "0"

如果图形中已存在图层,则此操作有效。如果它不存在,可以重写它以创建层。
回复

使用道具 举报

32

主题

98

帖子

66

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
160
发表于 2022-7-5 17:14:45 | 显示全部楼层
乔恩。。。非常感谢。我非常感谢
回复

使用道具 举报

35

主题

140

帖子

108

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
177
发表于 2022-7-5 17:19:00 | 显示全部楼层
不客气。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 17:22:01 | 显示全部楼层
如果图层不存在,则应创建该图层,并将对象附加到该图层上,该图层在本例中为“MyLayer”。
 
  1. (defun c:test (/ c1 c2)
  2.   (and (setq c1 (getpoint "\nSpecify first point :"))
  3.        (setq c2 (getcorner "\nSpecify opposite corner :" c1))
  4.        (mapcar '(lambda (q p) (entmake (list '(0 . "LINE") (cons 8 [color="magenta"]"MyLayer"[/color]) (cons 10 q) (cons 11 p))))
  5.                  (list c1 (list (car c2) (cadr c1)))
  6.                  (list c2 (list (car c1) (cadr c2))))
  7.        (vl-cmdf "_.rectang" "_non" c1 "_non" c2)
  8.        (entmod (append (entget (entlast)) '((8 . [color="magenta"]"MyLayer"[/color]))))
  9.      )  
  10. (princ))
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-24 15:50 , Processed in 3.296095 second(s), 73 queries .

© 2020-2025 乐筑天下

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