明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6985|回复: 16

[已解答] 如何利用LISP合并CAD快捷键

[复制链接]
发表于 2014-4-26 22:57:32 | 显示全部楼层 |阅读模式
我想将UCS,DOR,DBA三个原始快捷键合并成一个快捷键FF,
我应该怎么编写呀?


发表于 2020-8-22 11:19:55 | 显示全部楼层
  多谢大神分享,学习一下!
发表于 2020-8-30 10:00:45 | 显示全部楼层
谢谢分享,已经学习到了
发表于 2020-8-12 14:23:00 来自手机 | 显示全部楼层
好贴,学习了,谢谢
发表于 2014-4-27 07:39:23 | 显示全部楼层
  1. (defun c:udd ()
  2. (command "UCS")
  3. (while (> (getvar "CMDACTIVE") 0) (command PAUSE))
  4. (command "DIMORDINATE")
  5. (while (> (getvar "CMDACTIVE") 0) (command PAUSE))
  6. (command "DIMBASELINE")
  7. (while (> (getvar "CMDACTIVE") 0) (command PAUSE))
  8. (princ)
  9. )
 楼主| 发表于 2014-4-27 08:49:22 | 显示全部楼层
ZZXXQQ 发表于 2014-4-27 07:39

版主,你真伟大,这正是我想要的,不过需要鼠标点击一次自定义原点,然后再点一次指定尺寸线起点,第三次点击时确定尺寸文字位置,可否将自定义原点与指定尺寸线起点合并成鼠标点击一次即可?另外能稍微简单得解释一下每行代码的意思吗?我完全是个外人,也想借此机会学习一下lips,方便以后的工作!万分感谢!!
发表于 2014-4-27 09:18:55 | 显示全部楼层
  1. (defun c:udd ()
  2. (setq pt (getpoint "\n原点: "));取得原点
  3. (command "UCS" "N" pt);发出UCS命令并给定原点
  4. (command "DIMORDINATE" pt);发出坐标标注命令并给定起点
  5. (while (> (getvar "CMDACTIVE") 0) (command PAUSE));等待前一命令完成
  6. (command "DIMBASELINE");发出标注命令
  7. (while (> (getvar "CMDACTIVE") 0) (command PAUSE));等待前一命令完成
  8. (princ)
  9. )
发表于 2014-4-27 10:25:02 | 显示全部楼层
(defun c:ff()(c:UCS)(c:DOR)(c:DBA))
发表于 2014-4-27 10:41:21 | 显示全部楼层
xyp1964 发表于 2014-4-27 10:25
(defun c:ff()(c:UCS)(c:DOR)(c:DBA))

这是院长本人么?这样可以?命令不是外部函数吧。

点评

可不可以自己知道……  发表于 2014-4-27 11:41
院長以為想當然耳,沒試過就發了  发表于 2014-4-27 11:14
 楼主| 发表于 2014-4-27 13:07:38 | 显示全部楼层
ZZXXQQ 发表于 2014-4-27 09:18

第二种方案试过了,但是有出现一个问题,就是第一根尺寸线的起点不是在原点,而是跑到别的地方去了,需要结束命令,然后再次驶入快捷,然后点击原点,这样拉出来的第一根线才是在原点,我尝试着颠倒了一下前两部命令的步骤之类的,还是没调出来,所以还得请版主大人指点迷津啦!!谢谢!
发表于 2014-4-27 14:37:32 | 显示全部楼层
  1. (defun c:udd ()
  2. (setq pt (getpoint "\n原点: "));取得原点
  3. (command "UCS" "N" pt);发出UCS命令并给定原点
  4. (command "DIMORDINATE" (list 0 0));发出坐标标注命令并给定起点
  5. (while (> (getvar "CMDACTIVE") 0) (command PAUSE));等待前一命令完成
  6. (command "DIMBASELINE");发出标注命令
  7. (while (> (getvar "CMDACTIVE") 0) (command PAUSE));等待前一命令完成
  8. (princ)
  9. )
 楼主| 发表于 2014-4-27 14:54:31 | 显示全部楼层
ZZXXQQ 发表于 2014-4-27 14:37

OK了,版主,原来指定一个坐标0点就好了,谢谢!!!可以通过QQ联系你下吗?还有几个问题想请教一下!
发表于 2014-4-27 15:57:40 | 显示全部楼层

  1. (defun c:tt ()
  2.   (setq pt (getpoint "\n基点<退出>: "))
  3.   (command "ucs" "n" pt)
  4.   (setq p0 '(0 0)
  5.         p1 '(0 300)
  6.         p2 '(300 0)
  7.   )
  8.   (command "dim1" "ord" p0 p1 "")
  9.   (setq s1 (entlast))
  10.   (command "dim1" "ord" p0 p2 "")
  11.   (setq s2 (entlast))
  12.   (while (setq p0 (getpoint "\n基点<退出>: "))
  13.     (command "dim1" "bas" "" s1 p0 "")
  14.     (command "dim1" "bas" "" s2 p0 "")
  15.   )
  16.   (princ)
  17. )

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

哈哈挺好玩,不知道干啥使啊能  发表于 2014-4-28 09:31
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-15 01:57 , Processed in 0.283207 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表