乐筑天下

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

[编程交流] 没时间了。GRVEC和Grread

[复制链接]

3

主题

12

帖子

14

银币

初来乍到

Rank: 1

铜币
24
发表于 2022-7-6 12:50:01 | 显示全部楼层 |阅读模式
所有人的问题,特别是李:(想你几乎总是使用这个函数)。
 
I nedd模块:
Grvecs弧形橡胶线。
 
(defun GV-ARL(startpt secondpt)
???
)
 
(等待终点时绘制弹性线)
 
 
与本机弧函数相同的行为。
 
谢谢大家在Lisp大师面前。
回复

使用道具 举报

4

主题

327

帖子

324

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 12:55:49 | 显示全部楼层
(命令“arc”startpt secondpt pause)
尝试这样的操作,暂停将等待用户选择终点。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:58:41 | 显示全部楼层
正如约翰所说,这真的需要使用GRVEC吗。。。?
 
请记住,GRVEC需要位于grRead循环内以跟踪鼠标移动-因此OSNAP/ortho已退出(除非模仿),并且您将失去大多数其他功能。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 13:02:22 | 显示全部楼层
我不得不同意,似乎有很多工作可以通过使用命令来实现。
我一直使用它放置一个带有2个点的圆弧,然后我可以输入半径。
  1. ;arc by 2 selected endpoints, then entering or selecting radius
  2. (defun c:AR ( / point_1 point_2 )
  3. (if
  4. (and
  5.   (setq point_1 (getpoint "\nPick 1st Point: "))
  6.   (setq point_2 (getpoint point_1 "\nPick 2nd Point: "))
  7. );and
  8. (command "_.arc" "_non" point_1 "_e" "_non" point_2 "_r")
  9. (princ "\nMissed, try again.")
  10. );if
  11. (princ)
  12. );defun
回复

使用道具 举报

3

主题

12

帖子

14

银币

初来乍到

Rank: 1

铜币
24
发表于 2022-7-6 13:07:11 | 显示全部楼层
是的。暂停命令。
当然,我已经知道了,但我已经放弃了命令调用
几年前我的子程序。
我想,这必须留下。
谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:12:06 | 显示全部楼层
用vl cmdf伪装
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 13:16:03 | 显示全部楼层
您不必使用暂停,只需在发出命令之前尽可能多地设置命令。
回复

使用道具 举报

4

主题

327

帖子

324

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 13:20:04 | 显示全部楼层
我只是好奇,可以更详细地解释一下你想要什么。
看起来你有一个例程,你正在通过它2个增强(pt1 pt2)
然后您希望用户选择pt3。
然后呢?
回复

使用道具 举报

3

主题

12

帖子

14

银币

初来乍到

Rank: 1

铜币
24
发表于 2022-7-6 13:22:18 | 显示全部楼层
这是我的潜艇,这是我要的表格。
这当然管用,但我不喜欢使用命令调用。
无论如何,我认为使用GRVEC和grread将是一个微弱的解决方案。
 
谢谢你抽出时间
 
  1. ;;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  2. ;; ARC RUBBER LINE (GETPOINT manner)                        
  3. ;; arg p1 p2 string > ret point or nil                     
  4. ;; (GETARCLASTPOINT (GETPOINT) (GETPOINT) "Specify end point of arc:")
  5. ;; (GETARCLASTPOINT (GETPOINT) (GETPOINT) NIL)                     
  6. ;;____________________________________________________________________
  7. (DEFUN GETARCLASTPOINT (_pt1 _pt2 _msg`str / *-nm *-ce *-pt)
  8.   (SETQ *-ce (GETVAR "cmdecho")
  9.         *-nm (GETVAR "nomutt")
  10.   )
  11.   (PROGN (SETVAR "cmdecho" 1) (SETVAR "nomutt" 0))
  12.   (IF _msg`str
  13.      (PROMPT (STRCAT "\n" _msg`str))
  14.   )
  15.   (PROGN (SETVAR "cmdecho" 0) (SETVAR "nomutt" 1))
  16.   (IF (VL-CMDF (GETCNAME "_ARC") _pt1 _pt2 "\")
  17.      (PROGN (SETQ *-pt (GETVAR "LASTPOINT")) (ENTDEL (ENTLAST)))
  18.   )
  19.   (PROGN (SETVAR "cmdecho" *-ce) (SETVAR "nomutt" *-nm))
  20.   *-pt
  21. )
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 13:26:38 | 显示全部楼层
我删除了一些“progn”(不是必需的),添加了一个错误处理程序来修复cmdecho,删除了nomutt(没有任何必要),并在消息提示中显示默认值if nil。
 
  1. (DEFUN GETARCLASTPOINT (_pt1 _pt2 _msg`str / *error* *-ce _msg`str *-pt)
  2. (defun *error* (msg)
  3.    (and *-ce (setvar "cmdecho" *-ce))
  4. ) ;_ defun
  5. (SETQ *-ce (GETVAR "cmdecho"))
  6. (SETVAR "cmdecho" 0)
  7. (or _msg`str (setq _msg`str (strcat "\nSpecify point: ")))
  8. (PROMPT (STRCAT "\n" _msg`str))
  9. (IF (VL-CMDF (GETCNAME "_ARC") _pt1 _pt2 "\")
  10.    (PROGN (SETQ *-pt (GETVAR "LASTPOINT")) (ENTDEL (ENTLAST)))
  11. ) ;_ IF
  12. (*error* nil)
  13. *-pt
  14. ) ;_ DEFUN

 
 
你的眼睛没问题,只要一双眼睛就行了。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 02:52 , Processed in 0.328706 second(s), 72 queries .

© 2020-2025 乐筑天下

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