乐筑天下

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

[编程交流] 检查装置不工作

[复制链接]

28

主题

124

帖子

96

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-5 17:54:06 | 显示全部楼层 |阅读模式
大家好
 
我有一个文本例程,可以按我想要的方式运行。它检查cannoscalevalue并相应地设置文本大小。
 
  1. ;;Type T1 to start the MTEXT command on the correct layer
  2. (command "-dimstyle" "R" "Standard")
  3. (defun c:T1 ()
  4. (setvar "cmdecho" 0)
  5.    
  6. (setvar "dimscale" (/ 1.0 (getvar "CANNOSCALEVALUE")))
  7. (setq ins (getvar "insunits"))
  8.    
  9. (cond
  10. (= (getvar 'dimscale) 1)
  11. (= (getvar 'dimscale) 2)
  12. (= (getvar 'dimscale) 5)       
  13. (= (getvar 'dimscale) 10)
  14. (= (getvar 'dimscale) 20)
  15. (= (getvar 'dimscale) 25)
  16. (= (getvar 'dimscale) 50)
  17. (= (getvar 'dimscale) 100)
  18. (= (getvar 'dimscale) 200)
  19. (= (getvar 'dimscale) 250)
  20. (= (getvar 'dimscale) 500)
  21. (= (getvar 'dimscale) 1000)
  22. (= (getvar 'dimscale) 2000)
  23. (= (getvar 'dimscale) 2500)
  24. (= (getvar 'dimscale) 5000)
  25. (= (getvar 'dimscale) 10000)
  26. )       
  27. (setq scale (getvar "DIMSCALE"))
  28. (setq ln (strcat "L-TEXT-SMLL-"(rtos scale 2 0)))
  29. (command "-LAYER" "m" ln "co" "7" ln "p" "p" ln "")
  30. (setvar "CECOLOR" "bylayer")
  31.         (prompt "\n Please pick your start point for DTEXT ")
  32.    
  33.         (setvar "TEXTSTYLE" "Standard")
  34.         (setvar "TEXTSIZE" (* 1.8(getvar "DIMSCALE")))
  35.        
  36.         (initdia)(command "mtext" pause)
  37. (setvar "cmdecho" 1)
  38. (princ)
  39. )

 
现在,我想添加一些代码来检查图形是以毫米为单位还是以米为单位,并应用比例来说明这一点。下面是我用红色添加的内容
 
  1. ;;Type T1 to start the MTEXT command on the correct layer
  2. (command "-dimstyle" "R" "Standard")
  3. (defun c:T1 ()
  4. (setvar "cmdecho" 0)
  5.    
  6. [color="red"](setq ins (getvar "insunits"))[/color]
  7.    
  8. (cond
  9. [color="red"]((= ins 4)[/color]
  10. [color="red"](setvar "dimscale" (/ 1.0 (getvar "CANNOSCALEVALUE")))[/color]
  11. [color="red"]((= ins 6)[/color]
  12. [color="red"](setvar "dimscale" (/ 0.001 (getvar "CANNOSCALEVALUE")))[/color]
  13. (= (getvar 'dimscale) 1)
  14. (= (getvar 'dimscale) 2)
  15. (= (getvar 'dimscale) 5)       
  16. (= (getvar 'dimscale) 10)
  17. (= (getvar 'dimscale) 20)
  18. (= (getvar 'dimscale) 25)
  19. (= (getvar 'dimscale) 50)
  20. (= (getvar 'dimscale) 100)
  21. (= (getvar 'dimscale) 200)
  22. (= (getvar 'dimscale) 250)
  23. (= (getvar 'dimscale) 500)
  24. (= (getvar 'dimscale) 1000)
  25. (= (getvar 'dimscale) 2000)
  26. (= (getvar 'dimscale) 2500)
  27. (= (getvar 'dimscale) 5000)
  28. (= (getvar 'dimscale) 10000)
  29. )       
  30. (setq scale (getvar "DIMSCALE"))
  31. (setq ln (strcat "L-TEXT-SMLL-"(rtos scale 2 0)))
  32. (command "-LAYER" "m" ln "co" "7" ln "p" "p" ln "")
  33. (setvar "CECOLOR" "bylayer")
  34.         (prompt "\n Please pick your start point for DTEXT ")
  35.    
  36.         (setvar "TEXTSTYLE" "Standard")
  37.         (setvar "TEXTSIZE" (* 1.8(getvar "DIMSCALE")))
  38.        
  39.         (initdia)(command "mtext" pause)
  40. (setvar "cmdecho" 1)
  41. (princ)
  42. )

 
但我得到了一个错误:输入的列表格式不正确
 
我对COND语句没有真正的理解,并且假设我的语法不正确。有人能建议帮忙吗?
 
谢谢
保罗
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:09:11 | 显示全部楼层
 
嗨,保罗,
 
在例程中传递给cond函数的值有什么用途?
 
无论代码做什么,都缺少两个括号,因为我在以下更正中突出显示了它们:
  1. (cond
  2. ((= (setq ins (getvar "insunits")) 4)(setvar "dimscale" (/ 1.0 (getvar "CANNOSCALEVALUE")))[color="red"])[/color]
  3. ((= ins 6) (setvar "dimscale" (/ 0.001 (getvar "CANNOSCALEVALUE")))[color="red"])[/color]
  4. )
回复

使用道具 举报

28

主题

124

帖子

96

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-5 18:28:42 | 显示全部楼层
感谢您回复塔尔瓦特。
 
 
好问题。我在没有这个代码的情况下试过,它仍然有效。这是一个遗留代码,我认为它是为了强制例程仅在公司默认范围内运行。
 
 
谢谢-效果很好。你能解释一下为什么代码不需要
就像是
  1. 4
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:40:08 | 显示全部楼层
不客气。
 
 
没有任何区别,我只是将获取系统变量“insunits”的表达式移动到cond函数中的第一个表达式中,以避免重复使用分配给它的变量,即“ins”两次,并减少程序中的行数,所有这些都与您在示例中所做的相同。
 
如果愿意,可以将其移回cond函数之外,不会造成任何伤害。
回复

使用道具 举报

28

主题

124

帖子

96

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-5 18:50:07 | 显示全部楼层
 
谢谢塔瓦。我理解-这是对代码的更有效使用。再次感谢您的帮助。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:54:59 | 显示全部楼层
 
没错,不客气。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 00:32 , Processed in 0.545646 second(s), 75 queries .

© 2020-2025 乐筑天下

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