乐筑天下

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

[综合讨论] 来自键盘快捷键的宏

[复制链接]

4

主题

15

帖子

11

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-7 01:20:20 | 显示全部楼层 |阅读模式
大家好,
 
我有一个宏
 
^C^C^P(if(=C:FLXDCT nil)(负载(strcat dct\u drltr)/dct10/FLXDCT”))(原理)^PFLXDCT
 
单击工具栏中的图标即可运行。我想从一个键盘快捷键中调用它-比如说N-(似乎不用于其他任何事情)。
理想情况下,我希望将此宏标记到AutoLisp的末尾,但这可能是另一天的任务。
 
已经在CUI中尝试了自定义键盘快捷键,但它们似乎都需要shift键或ctrl键的组合。
 
任何反馈都将受到极大的赞赏。
 
戴夫
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-7 01:37:18 | 显示全部楼层
我能看到的最简单的方法:
 
  1. (defun c:n nil
  2. (or c:flxdct (load (strcat dct_drltr "/dct10/flxdct") nil))
  3. (if c:flxdct (c:flxdct))
  4. )
回复

使用道具 举报

4

主题

15

帖子

11

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-7 01:40:37 | 显示全部楼层
李·麦克再次请客。谢谢你
 
我该如何标记到这个lisp的末尾?
 
  1. (defun c:FF (/ *error* LastEntity OldLayoer pt eLast ent)
  2. ;;
  3. (defun *error* ( msg )
  4.    (and OldLayer (setvar "CLAYER" OldLayer))
  5.    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
  6.        (princ (strcat "\n** Error: " msg " **")))
  7.    (princ))   
  8. (setq LastEntity (entlast) OldLayer (getvar "CLAYER"))
  9. (or (tblsearch "LAYER" "flex-cr")
  10.      (command "_.-layer" "_M" "flex-cr" ""))  
  11. ;;
  12. (setvar 'filletrad
  13.          (cond ((getdist (strcat "\nSpecify radius of flex bends <" (rtos (getvar 'filletrad)) ">: ")))
  14.                ((getvar 'filletrad))
  15.          )
  16. )
  17. (if (setq pt (getpoint "\nSpecify start point: "))
  18.    (progn
  19. ;      (setq eLast (entlast))
  20.      (setvar "CLAYER" "flex-cr")
  21.      (command "_.pline" "_non" pt)
  22.      (while (= 1 (logand (getvar 'cmdactive) 1))
  23.        (princ "\nSpecify next point: ")
  24.        (command PAUSE)
  25.      )
  26.      (or (equal eLast (setq ent (entlast)))
  27.          (command "_.fillet" "_P" ent)
  28.      )
  29.    )
  30. )
  31. (setvar "CLAYER" OldLayer)
  32. (princ)
  33. )

.
 
此lisp创建了弹性线。口齿不清沿着它放了一条之字形的线。
 
这将是伟大的有这一切在一个打击。
022024dzh3hjfazirg9gfa.jpg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-7 01:56:40 | 显示全部楼层
我以为我认出了
 
http://www.cadtutor.net/forum/showthread.php?44009-宏p=327191&viewfull=1#post327191
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-7 02:06:48 | 显示全部楼层
我想最简单的方法是这样:
 
  1. (defun c:FF ( / *error* LastEntity OldLayoer pt ent )
  2. (defun *error* ( msg )
  3.    (and OldLayer (setvar "CLAYER" OldLayer))
  4.    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
  5.        (princ (strcat "\n** Error: " msg " **")))
  6.    (princ)
  7. )
  8. (setq LastEntity (entlast) OldLayer (getvar "CLAYER"))
  9. (or (tblsearch "LAYER" "flex-cr")
  10.    (entmake
  11.      (list
  12.        (cons 0 "LAYER")
  13.        (cons 100 "AcDbSymbolTableRecord")
  14.        (cons 100 "AcDbLayerTableRecord")
  15.        (cons 2 "flex-cr")
  16.        (cons 70 0)
  17.      )
  18.    )
  19. )
  20. (setvar 'filletrad
  21.    (cond
  22.      (
  23.        (getdist (strcat "\nSpecify radius of flex bends <" (rtos (getvar 'filletrad)) ">: "))
  24.      )
  25.      ( (getvar 'filletrad) )
  26.    )
  27. )
  28. (if (setq pt (getpoint "\nSpecify start point: "))
  29.    (progn
  30.      (setvar "CLAYER" "flex-cr")
  31.      
  32.      (command "_.pline" "_non" pt)
  33.      (while (= 1 (logand (getvar 'cmdactive) 1))
  34.        (princ "\nSpecify next point: ")
  35.        (command pause)
  36.      )
  37.      
  38.      (or (equal LastEntity (setq ent (entlast)))
  39.          (command "_.fillet" "_P" ent)
  40.      )
  41.    )
  42. )
  43. (setvar "CLAYER" OldLayer)
  44. (princ)
  45. (or c:flxdct (load (strcat dct_drltr "/dct10/flxdct") nil))
  46. (if c:flxdct (c:flxdct))
  47. )
回复

使用道具 举报

4

主题

15

帖子

11

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-7 02:13:57 | 显示全部楼层
你又一次来救援了。谢谢你
 
我试图在代码的底部添加函数,然后在另一个lisp完成后调用n函数,但无论我以何种方式尝试,都会不断出现错误。
 
谁会想到简单地将代码添加到底部呢。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-7 02:21:24 | 显示全部楼层
嗯,这不是实现它的理想方式,但我没有其他代码来整合它。
 
只要行得通我想
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-17 02:21 , Processed in 0.573939 second(s), 69 queries .

© 2020-2025 乐筑天下

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