乐筑天下

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

[编程交流] 简单r上的帮助和建议

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 06:43:47 | 显示全部楼层 |阅读模式
亲爱的,先生们
 
我是LISP的初学者,所以请理解一些愚蠢的问题。
 
我试着写一个例程,可以做一些事情,比如面积证明。
基本思想是用户在屏幕上拾取点(setq ptn(getpoint“\n选择第一个点:”),
一种场景中的点数为4[矩形],另一种场景中的点数为3[三角形]
按下enter键后,例程必须识别4或3个点,并继续绘制Pline(命令“Pline”ptn+ptn+1“c”)
然后存储距离点(setq dist1(距离ptn))并放置文本距离1、距离2
在模型空间中用户需要的位置创建表格。现在我有了“a”和“b”元素,用于计算矩形P=a*b的面积
如果有必要,我可以张贴一些图纸,但我想你知道我该做什么了。那么我的方法是正确的还是完全错了。
正如我所说,我是一个彻头彻尾的乞丐,任何帮助如何写这样的例行将不胜感激。
提前感谢!!
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 07:17:13 | 显示全部楼层
简单的一点是,如果使用plines,则可以通过VL检索面积
  1. ; draw pline then do this must be done after creating pline as it selects the last object created.
  2. (setq area (vlax-get-property  (vlax-ename->vla-object (entlast)) 'Area))

 
如果使用(setq ptn(getpoint oldpt“\n选择下一个点:”)将old point设置为=最后一个点,则屏幕上将出现一条拖拽线。
 
使用列表,你们可以有任意多个点,然后通过列表两次一次绘制pline第二次写文字标签。
你需要一段时间来检查你在屏幕上选择了一个点
 
  1. (setq pt (list 0 0)) ; need non nil to start
  2. (while (/= pt nil)
  3. (setq pt (getpoint "\nPick a point press enter to finish"))
  4. (setq ptlist (cons pt ptlist))
  5. )
  6. (setq Y 0)
  7. (setq num (length ptlist))
  8. (repeat num
  9. (princ (nth Y ptlist))
  10. (setq Y (+ Y 1))
  11. )
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:56:16 | 显示全部楼层
Tnx BigAl,我会试试的
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 15:12 , Processed in 0.433244 second(s), 58 queries .

© 2020-2025 乐筑天下

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