乐筑天下

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

[编程交流] 具有3个属性的块

[复制链接]

4

主题

57

帖子

53

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 11:03:48 | 显示全部楼层 |阅读模式
我有一个包含三个属性的块,分别表示窗口的宽度、长度和平方英尺。我编写了一个简单的代码,将块插入到图形中,并根据用户需要重复。问题是,-Insert命令产生了一个错误,产生了一个“无效的选项关键字”错误消息。
 
  1. (defun c:ATO-Windows ()   
  2. (c:utility-start)
  3. (setvar "osmode" 0)
  4. (SETVAR "TEXTEVAL" 1)
  5. (setq ATOLayer      "AreaTakeOff-Window"
  6. ATOLayerColor "143"
  7. ATOLineType   "Continuous"
  8. ATOBlkWPath   "C:/ACAD2008/HVAC/BLOCKS/ATTR-WINDOW"
  9. )
  10. (command "layer"     "on"    ATOLayer    "thaw"    ATOLayer
  11.    "m"        ATOLayer    "C"        ATOLayerColor
  12.    ATOLayer    "Ltype"    ATOLineType ""
  13.   )
  14. (setq continue "T")
  15. (while continue
  16.    (setq WindowLength "0"
  17.   WindowWidth "0"
  18.    )
  19.    (setq WindowLength (getstring "\nEnter Window Length in feet: "))
  20.    (setq WindowWidth (getstring "\tWidth in feet: "))
  21.    (setq RealLength (atof WindowLength)
  22.   RealWidth  (atof WindowWidth)
  23.    )
  24.    (setq RealArea (* RealLength RealWidth))
  25.    (setq WindowArea (strcat (rtos RealArea 2 2) "SF"))
  26.    (SETVAR "ATTDIA" 0)
  27.    (terpri)
  28.    (if (> RealArea 0.0)
  29. (command "-insert" ATOBlkWPath "Scale" (getvar "Userr3") Pause "0"
  30.   WindowLength  WindowWidth  WindowArea
  31. )
  32.        (setq continue nil)
  33.    )     ;end if
  34. )     ;end while
  35. (c:utility-end)
  36. (SETVAR "ATTDIA" 1)
  37. )     ;end c:ATO-Windows

 
块连接,设置测试此代码的路径。我不明白为什么我会出错。也许一双新的眼睛会发现一些东西。
 
谢谢

属性窗口。图纸
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 11:22:08 | 显示全部楼层
有很多问题,但最大的问题是设置了ATTDEFs验证位。
 
我试着把它清理一下:
 
  1. [b][color=BLACK]([/color][/b]defun c:ATO-Windows [b][color=FUCHSIA]([/color][/b]/ ATOLayer ATOLayerColor ATOLineType
  2.                        ATOBlkWPath WindowLength WindowWidth
  3.                        RealArea WindowArea ipt[b][color=FUCHSIA])[/color][/b]
  4. [color=#8b4513];  [b][color=FUCHSIA]([/color][/b]c:utility-start[b][color=FUCHSIA])[/color][/b][/color]
  5. [color=#8b4513];  [b][color=FUCHSIA]([/color][/b]setvar [color=#2f4f4f]"osmode"[/color] 0[b][color=FUCHSIA])[/color][/b][/color]
  6. [b][color=FUCHSIA]([/color][/b]setvar [color=#2f4f4f]"CMDECHO"[/color] 0[b][color=FUCHSIA])[/color][/b]
  7. [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]= [b][color=MAROON]([/color][/b]getvar [color=#2f4f4f]"USERR3"[/color][b][color=MAROON])[/color][/b] 0[b][color=NAVY])[/color][/b]
  8.      [b][color=NAVY]([/color][/b]setvar [color=#2f4f4f]"USERR3"[/color] 4.8[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  9. [b][color=FUCHSIA]([/color][/b]setq ATOLayer   [color=#2f4f4f]"AreaTakeOff-Window"[/color]
  10.   ATOLayerColor   [color=#2f4f4f]"143"[/color]
  11.     ATOLineType   [color=#2f4f4f]"Continuous"[/color]
  12.     ATOBlkWPath   [color=#2f4f4f]"C:/ACAD/AWINDOW"[/color] [color=#8b4513];  2008/HVAC/BLOCKS/ATTR-WINDOW[/color]
  13.     [b][color=FUCHSIA])[/color][/b]
  14. [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]not [b][color=MAROON]([/color][/b]tblsearch [color=#2f4f4f]"LAYER"[/color] ATOLayer[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  15.      [b][color=NAVY]([/color][/b]command [color=#2f4f4f]"_.LAYER"[/color]  [color=#2f4f4f]"_M"[/color]  ATOLayer [color=#2f4f4f]""[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  16. [b][color=FUCHSIA]([/color][/b]command [color=#2f4f4f]"_.LAYER"[/color] [color=#2f4f4f]"_ON"[/color] ATOLayer
  17.                     [color=#2f4f4f]"_T"[/color]  ATOLayer
  18.                     [color=#2f4f4f]"_S"[/color]  ATOLayer
  19.                     [color=#2f4f4f]"_C"[/color]  ATOLayerColor ATOLayer
  20.                     [color=#2f4f4f]"_LT"[/color] ATOLineType   ATOLayer [color=#2f4f4f]""[/color][b][color=FUCHSIA])[/color][/b]
  21. [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]progn
  22.           [b][color=MAROON]([/color][/b]initget 6[b][color=MAROON])[/color][/b]
  23.           [b][color=MAROON]([/color][/b]setq WindowLength [b][color=GREEN]([/color][/b]getdist [color=#2f4f4f]"\nEnter Window Length in feet: "[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  24.         [b][color=NAVY]([/color][/b]initget 7[b][color=NAVY])[/color][/b]
  25.         [b][color=NAVY]([/color][/b]setq WindowWidth [b][color=MAROON]([/color][/b]getdist [color=#2f4f4f]"\tWidth in feet: "[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  26.         [b][color=NAVY]([/color][/b]setq RealArea [b][color=MAROON]([/color][/b]* WindowLength WindowWidth[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  27.         [b][color=NAVY]([/color][/b]setq WindowArea [b][color=MAROON]([/color][/b]strcat [b][color=GREEN]([/color][/b]rtos RealArea 2 2[b][color=GREEN])[/color][/b] [color=#2f4f4f]"SF"[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  28.         [b][color=NAVY]([/color][/b]initget 1[b][color=NAVY])[/color][/b]
  29.         [b][color=NAVY]([/color][/b]setq ipt [b][color=MAROON]([/color][/b]getpoint [color=#2f4f4f]"\nInsert Point:   "[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  30.         [b][color=NAVY]([/color][/b]command [color=#2f4f4f]"_.INSERT"[/color] ATOBlkWPath ipt [b][color=MAROON]([/color][/b]getvar [color=#2f4f4f]"Userr3"[/color][b][color=MAROON])[/color][/b] [color=#2f4f4f]""[/color] [color=#2f4f4f]""[/color]
  31.                  [b][color=MAROON]([/color][/b]rtos WindowLength 2 2[b][color=MAROON])[/color][/b]
  32.                  [b][color=MAROON]([/color][/b]rtos WindowWidth  2 2[b][color=MAROON])[/color][/b]
  33.                  WindowArea[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  34. [color=#8b4513];  [b][color=FUCHSIA]([/color][/b]c:utility-end[b][color=FUCHSIA])[/color][/b][/color]
  35. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 
-大卫
A窗口。图纸
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 11:46:31 | 显示全部楼层
我认为ENTMAKE比调用command更好
 
附属的
-创建lisp的块可以用作子例程
-我用来创建的lisp。
属性窗口。lsp
EntMaker CAB 03-MakeEntmake。lsp
回复

使用道具 举报

4

主题

57

帖子

53

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 11:58:42 | 显示全部楼层
感谢David处理代码。它按照我的计划工作。我比较我的代码来理解我的错误。我尝试在代码中使用下划线插入和下划线-点插入,但仍然不断出错。下划线使命令透明正确吗?下划线点做什么?
 
感谢asos2000提供您的ENTMAKE版本。虽然我已经通读了代码,但我并没有完全理解它。对我来说是相当先进的东西。我将使用此代码作为学习工具来理解ENTMAKE OMAND。
 
扔出
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 12:13:51 | 显示全部楼层
问题在于ATTDEFs。设置验证位后,需要将属性值两次提供给命令调用
 
_.  表示使用国际名称并忽略未定义的命令。(破折号)通常表示绕过对话框输入屏幕-大卫
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 11:19 , Processed in 1.179613 second(s), 73 queries .

© 2020-2025 乐筑天下

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