乐筑天下

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

[编程交流] 用户偏好LISP例程i

[复制链接]

1

主题

1

帖子

0

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:07:35 | 显示全部楼层 |阅读模式
大家好。。。这是我的第一个帖子,所以请帮我学习正确的过程!
 
 
我已经写了一个基本的例程,让我的脚在AutoLISP世界湿。我的目标是执行一系列命令,如果愿意的话,可以“重启”我的界面(缩放扩展、qsave、将当前层设置为0等等)
 
 
我的两个目标是将圆角半径设置为“0”(例如,不是1/4”),并将revcloud弧长设置为1/4(例如,与1/8相反)
 
 
我作为非会员浏览了论坛,但似乎没有一个解决方案能“解决”我的问题。就我所知,除了fillet和revcloud之外,一切似乎都在运行。在下面的代码中,我确实包含了revcloud弧长,但我已经分别对这两部分进行了研究,试图在不关注另一部分的情况下让其中一部分工作。。。它们都在“zoom”函数之上,因为我使用该函数作为已知函数来查看命令是否会执行。(最大化显示仍有效,但半径不变,弧长不变)提前感谢您的帮助!
 
 
 
 
;向上
;9/21/2016
;修订日期:2016年10月11日
;斯诺伯德著
;
(defun c:up()
(setvar“clayer”“0”)
(命令“qsave”)
(setvar“filletrad”0.0)
(setq“CloudArcSize”。25)
(命令“zoom”“e”)
(命令“regen”)
(命令“layon”)
(setvar“osmode”1211)
(setvar“autosnap”1211)
(普林斯)
)
 
 
 
 
(你如何让代码包装的东西工作,使它以更好的格式?我试着点击,突出显示…我是一个笨蛋:-()
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 17:27:57 | 显示全部楼层
这是错误的,将导致语法错误:
(setq“CloudArcSize”。25)
 
不要将值声明为字符串变量。。。
 
这是正确的:
(setq CloudArcSize.25)
 
为了快速参考格式,请使用VLIDE调试界面粘贴代码并单击按钮“格式”,或选择所需内容并单击“格式选择”按钮。。。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:57:50 | 显示全部楼层
请看一下,它允许您为圆角命令输入任何半径,而无需担心额外设置的半径步长“f0”f12 f12-34请参见代码。它也做圆和偏移。
 
  1. ; Enter the filet radius as part of a command line entry f100 offset O234 circle c123-45
  2. ; note - is used for decimal point
  3. ; original code and methology by Alan H
  4. ; assistance and code that worked by Lee-Mac
  5. ; OCT 2015
  6. (   (lambda nil
  7.        (vl-load-com)
  8.        (foreach obj (cdar (vlr-reactors :vlr-command-reactor))
  9.            (if (= "fillet-reactor" (vlr-data obj))
  10.                (vlr-remove obj)
  11.            )
  12.        )
  13.        (vlr-command-reactor "fillet-reactor" '((:vlr-unknowncommand . fillet-reactor-callback)))
  14.    )
  15. )
  16. (defun filletrad ( / rad)
  17. (setq rad (distof (substr com 2) 2))
  18.            (if (<= 0.0 rad)
  19.              (progn        
  20.              (setvar 'filletrad rad)
  21.              (vla-sendcommand fillet-reactor-acdoc "_.fillet ")
  22.              )
  23.              )
  24. )
  25. (defun makecirc ( / rad radd)
  26. (setq rad (distof (substr com 2) 2))
  27.            (if (<= 0.0 rad)
  28.            (progn
  29.            (setvar 'circlerad rad)
  30.            (setq pt (getpoint "Pick centre pt"))      
  31.            (vla-sendcommand fillet-reactor-acdoc "_.Circle !pt  ")      
  32.            )
  33.            )
  34. )
  35. (defun offdist ( / dist)
  36. (setq dist (distof (substr com 2) 2))
  37.            (if (<= 0.0 dist)
  38.            (progn        
  39.            (setvar 'offsetdist dist)
  40.            (vla-sendcommand fillet-reactor-acdoc "_.Offset  ")
  41.            )
  42.            )
  43. )
  44. (defun pipeoff ( / dist)
  45. (setq dist (distof (substr com 2) 2))
  46.            (if (<= 0.0 dist)
  47.            (progn
  48.            (setq poff (strcat "P" (rtos dist 2 3)))
  49.            (if (not poff)(load "Pipe offsets"))
  50.            (vla-sendcommand fillet-reactor-acdoc poff)
  51.            )
  52.            )
  53. )
  54. (defun fillet-reactor-callback ( obj com )
  55. (setq com (vl-string-translate "-" "." (strcase (car com))))
  56.    (cond   
  57.        (   (and
  58.            (wcmatch com "~*[~F.0-9]*")
  59.            (wcmatch com "F*")
  60.            (wcmatch com "~F*F*")
  61.            (wcmatch com "~*.*.*")
  62.            ) ; and
  63.            (filletrad)
  64.         )
  65.         (  (and
  66.            (wcmatch com "~*[~C.0-9]*")
  67.            (wcmatch com "C*")
  68.            (wcmatch com "~C*C*")
  69.            (wcmatch com "~*.*.*")
  70.            ) ;and
  71.            (makecirc)
  72.         )
  73.         (  (and
  74.            (wcmatch com "~*[~O.0-9]*")
  75.            (wcmatch com "O*")
  76.            (wcmatch com "~O*O*")
  77.            (wcmatch com "~*.*.*")
  78.            ) ; and
  79.            (offdist)
  80.         )
  81. (  (and
  82.            (wcmatch com "~*[~P.0-9]*")
  83.            (wcmatch com "P*")
  84.            (wcmatch com "~P*P*")
  85.            (wcmatch com "~*.*.*")
  86.            ) ; and
  87.            (pipeoff)
  88.         )
  89.    ) ; master cond
  90. ) ; defun
  91. (princ)
  92. (or fillet-reactor-acdoc
  93.    (setq fillet-reactor-acdoc (vla-get-activedocument (vlax-get-acad-object)))
  94. )
  95. (princ)
[/NOPARSE]=
  1. Your Code Here
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 18:12:32 | 显示全部楼层
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 09:08 , Processed in 1.615771 second(s), 60 queries .

© 2020-2025 乐筑天下

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