乐筑天下

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

[编程交流] 我做错了什么????

[复制链接]

37

主题

158

帖子

124

银币

后起之秀

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

铜币
205
发表于 2022-7-6 12:47:57 | 显示全部楼层 |阅读模式
这是一个基本的lisp,它以我输入的原始数字的缩放半径创建一个圆。如果要对等轴测二维对象进行尺寸标注,则会使用该常数im。因为iso图像不能按1:1的比例缩放。我使用此lisp正确绘制等轴测对象。
 
 
  1. (defun c:isoc (/ ic sd)
  2. (initget 6)
  3. (cond
  4.     (setq ic (strcat "\nEnter Length ""))
  5.      (setq ic)
  6. )
  7. (setq sd (ic * .816496581))
  8.    
  9. (command "circle" getvar(sd))
  10. (princ)
  11. )
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

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

铜币
238
发表于 2022-7-6 12:56:31 | 显示全部楼层
尝试
 
(*Ic 0.8….)
回复

使用道具 举报

37

主题

158

帖子

124

银币

后起之秀

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

铜币
205
发表于 2022-7-6 12:58:28 | 显示全部楼层
 
 
我刚刚收到“未知命令”
回复

使用道具 举报

0

主题

12

帖子

13

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 13:04:43 | 显示全部楼层
 
以上红色是您的一些其他问题。也许从下面的代码开始,向其中添加所需的initget函数。您需要自行决定如何以正确的方式执行circle命令。
 
  1. (defun c:isoc (/ ic sd)
  2. (setq ic (getint "\nEnter Length "))
  3. (setq sd (* ic 0.816496581))
  4.    
  5. (command "circle" (getpoint "\nCenter: ") sd)
  6. (princ)
  7. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:07:36 | 显示全部楼层
“我在这里做错了什么?”
 
我认为反过来更容易回答。。。
[列表]
  • 字符串中的引号数量不正确。
  • 您的COND语句缺少很多括号
  • COND语句中的第二个条件有一个“setq”,没有值参数。
  • 您的Getvar语句不正确。
  • 你的乘法错了。
    [/列表]
  • 回复

    使用道具 举报

    48

    主题

    1073

    帖子

    1043

    银币

    后起之秀

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

    铜币
    238
    发表于 2022-7-6 13:13:37 | 显示全部楼层
    更好更快的建议
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 13:14:17 | 显示全部楼层
    以下是强调的错误:
     
    1. (defun c:isoc (/ ic sd)
    2. (initget 6)
    3. (cond
    4.     [b][color=Red]([/color][/b]setq ic ([b][color=Red]strcat[/color][/b] "\nEnter Length [b][color=Red]""[/color][/b]))
    5.      [b][color=Red](setq ic)[/color][/b]
    6. )
    7. (setq sd (ic [color=Red][b]*[/b][/color] [color=Red][b].816496581[/b][/color]))
    8.    
    9. (command "circle" [b][color=Red]getvar(sd)[/color][/b])
    10. (princ)
    11. )
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 13:20:57 | 显示全部楼层
    这更好:
     
    1. (defun c:isoc (/ ic)
    2. (initget 6)
    3. (if (setq ic (getdist "\nEnter Length: "))
    4.    (command "_.circle" pause (* ic 0.816496581)))
    5. (princ))
    回复

    使用道具 举报

    37

    主题

    158

    帖子

    124

    银币

    后起之秀

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

    铜币
    205
    发表于 2022-7-6 13:24:40 | 显示全部楼层
    1. (defun c:isoc (/ ic sd)
    2. (setq ic (getint "\nEnter Length "))
    3. (setq sd (* ic 0.816496581))
    4.    
    5. (command "circle" (getpoint "\nCenter: ") sd)
    6. (princ)
    7. )

     
     
    这很有效。我真的知道如何把事情复杂化,我想:?
     
    唯一的问题是我不能在长度中输入小数点。它要求一个整数。我忘了怎么修了。
    回复

    使用道具 举报

    0

    主题

    12

    帖子

    13

    银币

    初来乍到

    Rank: 1

    铜币
    0
    发表于 2022-7-6 13:27:11 | 显示全部楼层
     
    使用李的代码。它更加优雅,并允许非整数。或者在我给你的内容中把“getint”改为“getdist”。
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-5 04:59 , Processed in 0.761411 second(s), 72 queries .

    © 2020-2025 乐筑天下

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