乐筑天下

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

[编程交流] Wall PocheLisp程序

[复制链接]

18

主题

71

帖子

53

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 07:42:21 | 显示全部楼层 |阅读模式
我知道这是怎么回事,只是无法编写代码。我想知道是否有人可以帮忙。基本上,你会选择3分。前2个决定宽度,第3个决定长度。然后,它将使用宽度和长度创建一个多边形。我知道这听起来很奇怪,但这真的会有帮助。
 
谢谢
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:47:20 | 显示全部楼层
像这样的?
  1. ;;; 3 Points Polygon (11-VII-2012)
  2. (defun c:3PP( / point1st point2nd point3rd  )
  3. (while (and (setq point1st (getpoint "\nPick insertion point: "))
  4.             (setq point2nd (getpoint point1st "\nIndicate width: "))
  5.             (setq point3rd (getpoint point1st "\nIndicate length ")))
  6. (command "_RECTANGLE" "_non" point1st
  7.                        "_non" (list (+ (car  point1st) (distance point1st point3rd))
  8.                                     (+ (cadr point1st) (distance point1st point2nd))))
  9. )
  10. (princ)
  11. )
回复

使用道具 举报

18

主题

71

帖子

53

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 07:50:01 | 显示全部楼层
有点。它绘制了一个矩形。我需要的是一条折线。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 07:54:35 | 显示全部楼层
上传一张显示你需要的图片。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:55:46 | 显示全部楼层
矩形只不过是一个多段线实体。
回复

使用道具 举报

18

主题

71

帖子

53

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 08:00:38 | 显示全部楼层
这有帮助吗?
 
 
084223t14j8ty62qt3fzkk.jpg
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:03:56 | 显示全部楼层
所以你实际上是在寻找一条宽度不同于0的单段多段线?
回复

使用道具 举报

18

主题

71

帖子

53

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 08:06:00 | 显示全部楼层
对的宽度将由选择的前2个点确定。
 
我知道图像看起来与我解释的有点不同,但老实说,我所需要的只是创建它的基本代码。我可以调整它,让它看起来像我想要的那样。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 08:10:27 | 显示全部楼层

 
  1. (defun c:Test (/ p1 p2 vl gr) (vl-load-com)
  2. (if (and (setq p1 (getpoint "\n Specify first point :"))
  3.           (setq p2 (getpoint p1 "\n Next point :"))
  4.      )
  5.    (progn
  6.      (vl-cmdf "_.pline" "_non" p1 "_non" p2 "")
  7.      (setq vl (vlax-ename->vla-object (entlast)))
  8.      (while (eq (car (setq gr (grread t 15 0))) 5)
  9.        (redraw)
  10.        (grdraw p1 (polar p1 (+ (angle p1 p2) (/ pi 2.)) (distance p1 (cadr gr))) 1 0)
  11.        (vla-put-constantwidth vl (distance p1 (cadr gr)))
  12.      )
  13.    )
  14.    (princ)
  15. )
  16. (redraw)
  17. (princ)
  18. )
回复

使用道具 举报

18

主题

71

帖子

53

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 08:11:03 | 显示全部楼层
这是一种有趣的方式。似乎这两个点定义了长度,然后它有一个橡胶带效应,它决定了宽度。如果有一种方法可以输入宽度或为宽度选择2个点,那就太好了。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 22:07 , Processed in 0.409296 second(s), 85 queries .

© 2020-2025 乐筑天下

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