乐筑天下

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

[编程交流] 帮助-如何移动线条

[复制链接]

57

主题

243

帖子

190

银币

后起之秀

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

铜币
285
发表于 2022-7-6 08:48:46 | 显示全部楼层 |阅读模式
我需要帮助。解决方案对专家来说很容易,但我有困难:我需要一个例程,允许简单的画线,然后激活移动命令,基线由线上的一个点定义,目标点由pick定义。这基本上是二合一。绘制并移动。
我在这里。
 
  1. ;;draw a line and move
  2. (defun c:linm (/ pt1 pt2)
  3. (setq pt1 (getpoint "\nPick start:"))
  4. (setq pt2 (getpoint "\nPick End:"))
  5. (command "line" pt1 pt1)
  6. (command "move")
  7. (princ)
  8. )
回复

使用道具 举报

14

主题

719

帖子

706

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 08:54:45 | 显示全部楼层
我确信这里有人会回答你,但这让我困惑,所以我要问:你需要这个做什么?最终结果是什么?
回复

使用道具 举报

57

主题

243

帖子

190

银币

后起之秀

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

铜币
285
发表于 2022-7-6 08:57:16 | 显示全部楼层
是的,这似乎太简单了。但基本上是为了抑制第二个命令的调用。
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

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

铜币
238
发表于 2022-7-6 08:58:31 | 显示全部楼层
我和老虎在一起。为什么不从正确的位置开始画呢?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:01:43 | 显示全部楼层
未经测试,请尝试。
 
  1. (defun c:linm (/ pt1 pt2)
  2. (setq pt1 (getpoint "\nPick start:"))
  3. (setq pt2 (getpoint "\nPick End:"))
  4. (command "line" pt1 pt1)
  5. (command "move" (entlast) "" "_non" pt1 (getpoint "\n Specify the distination Point:"))
  6. (princ)
  7. )
回复

使用道具 举报

14

主题

719

帖子

706

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 09:06:19 | 显示全部楼层
我想你误解了我,你觉得这个解决方案能解决你日常绘画中的什么情况?
回复

使用道具 举报

57

主题

243

帖子

190

银币

后起之秀

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

铜币
285
发表于 2022-7-6 09:09:06 | 显示全部楼层
因为我打算沿着第二条线垂直移动这条线,其中移除的值通过键盘指定。也就是说,没有参考文献。在正常情况下,绘制线,然后可以选择偏移或移动,但始终称为第二个命令。正如我所说,我们的想法是一步到位。
回复

使用道具 举报

14

主题

719

帖子

706

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 09:12:51 | 显示全部楼层
所以你想画一条指定长度的线,在距离一个点指定的距离。
 
如果我理解正确,我会使用带有极轴追踪的扩展OSnap来获得从一条直线上的一个点的距离。在那之后,是一个以直角画新线的问题——我确信这里有一个解释,关于如何从一条线开始画一条垂直的线,但我找不到。
 
我解释这一点不是为了告诉你,你不应该使用Lisp程序。我想指出的是,Lisps并不总是解决问题的答案,您可以在autocad中使用命令完成很多事情。
 
无论如何,请返回您的代码
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:16:31 | 显示全部楼层
这比第一个好得多。。
 
  1. (defun c:linm (/ pt1 pt2 pt3)
  2. (if (and
  3.        (setq pt1 (getpoint "\nPick start:"))
  4.        (setq pt2 (getpoint pt1 "\nPick End:"))
  5.        (setq pt3 (getpoint "\n Specify distination Point:"))
  6.      )
  7.    (progn
  8.      (entmakex (list '(0 . "LINE")
  9.                      (cons 10 (trans pt1 1 0))
  10.                      (cons 11 (trans pt2 1 0))
  11.                )
  12.      )
  13.      (command "_.move"
  14.               (entlast)
  15.               ""
  16.               "_non"
  17.               pt1
  18.               "_non"
  19.               pt3
  20.      )
  21.    )
  22.    (princ)
  23. )
  24. (princ)
  25. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:18:34 | 显示全部楼层
由于entmakex返回实体名,因此不需要使用entlast
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 08:15 , Processed in 0.606579 second(s), 72 queries .

© 2020-2025 乐筑天下

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