乐筑天下

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

[编程交流] 为什么文本没有出现

[复制链接]

57

主题

351

帖子

294

银币

后起之秀

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

铜币
285
发表于 2022-7-6 15:21:57 | 显示全部楼层 |阅读模式
我已经浏览了所有旧的lisp文件,并将lisp从170多个缩小到了60个,这一个有一个很好的概念,它只是不能一直工作。它在获取面积(用于面积提取)后插入房间名称块,并在输入插入的信息B后请求房间名称行1和2以及房间编号,但没有刚刚插入的面积、房间名称和房间编号。什么是不对的,我该如何修复它。我对Lisp程序知道得不多,我几乎看不懂,以前也没有创建过自己的Lisp程序。
  1. (DEFUN C:ARE ()
  2. (IF (TBLSEARCH "LAYER" "ROOMNAMES" )
  3. (PROGN
  4. (SETQ RGN (GETVAR "REGENMODE" ))
  5. (SETVAR "REGENMODE" 0)
  6. (COMMAND "LAYER" "M" "DESIGN")
  7. (COMMAND "C" "1" "")
  8. (COMMAND "")
  9. (COMMAND "LAYER" "S" "ROOMNAMES" "")
  10. (SETVAR "REGENMODE" RGN)
  11. );PROGN
  12. ); IF
  13. (SETQ AR2 (ENTSEL "\N PICK AREA"))
  14. (COMMAND "AREA" "E" AR2 )
  15. (SETQ AR (GETVAR "AREA"))
  16. (SETQ AR1 (/ AR 144 ))
  17. (SETQ AR2 (RTOS AR1 2 1))
  18. (SETQ SCL (GETVAR "DIMSCALE"))
  19. (SETQ PNT (GETPOINT "\ N PICK INSERTION POINT:"))
  20. (SETQ NME (GETSTRING "\ N ENTER ROOMNAME LINE#2"))
  21. (SETQ NME2 (GETSTRING "\ N ENTER ROOMNAME LINE #1"))
  22. (SETQ NME3 (GETSTRING "\ N ENTER NUMBER"))
  23. (COMMAND "INSERT" "ROOM" PNT SCL SCL "0" NME NME2 NME3 AR2)
  24. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:36:26 | 显示全部楼层
LISP似乎写得非常糟糕-我会尝试重写。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:38:17 | 显示全部楼层
Lisp程序写得更好:
 
  1. (defun c:ARE (/ *error* varlist oldvars ar2 ar scl pnt nme2 nme nme3)
  2.    (defun *error* (msg)
  3.    (mapcar 'setvar varlist oldvars)
  4.    (if (= msg "")
  5.        (princ "\nFunction Complete.")
  6.        (princ (strcat "\n" (strcase msg)))
  7.    ) ;_  end if
  8.    (princ)
  9.    ) ;_  end defun
  10.    (setq varlist (list "CMDECHO" "ATTREQ" "CLAYER" "OSMODE")
  11.      oldvars (mapcar 'getvar varlist)
  12.    ) ;_  end setq
  13.    (mapcar 'setvar varlist (list 0 1 "0" 0))
  14.    (if    (not (tblsearch "LAYER" "ROOMNAMES"))
  15.    (command "-layer" "m" "ROOMNAMES" "C" "1" "ROOMNAMES" "")
  16.    (setvar "clayer" "ROOMNAMES")
  17.    ) ; if
  18.    (while
  19.    (not ar2)
  20.       (setq ar2 (car (entsel "\nPick Area: ")))
  21.    ) ;_  end while
  22.    (command "_area" "object" ar2)
  23.    (setq ar  (rtos (/ (getvar "AREA") 144) 2 1)
  24.      scl (getvar "dimscale")
  25.    ) ;_  end setq
  26.    (if    (and
  27.        (setq pnt  (getpoint "\nPick insertion point:")
  28.          nme2 (getstring "\nEnter Roomname Line #1: ")
  29.          nme  (getstring "\nEnter Roomname Line #2: ")
  30.          nme3 (getstring "\nEnter Number: ")
  31.        ) ;_  end setq
  32.    ) ;_  end and
  33.    (command "-insert" "room" pnt scl scl "0.0" nme nme2 nme3 ar)
  34.    ) ;_  end if
  35.    (*error* "")
  36.    (princ)
  37. ) ;_  end defun

 
如果这不能正常工作,请提供您正在使用的块,我将进行测试。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:50:25 | 显示全部楼层
Lisp程序有帮助吗?
回复

使用道具 举报

57

主题

351

帖子

294

银币

后起之秀

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

铜币
285
发表于 2022-7-6 15:52:03 | 显示全部楼层
我得到了同样的结果。我把积木挂上了。谢谢你的帮助
图纸3.dwg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:59:49 | 显示全部楼层
好啊
 
使用此代码:
 
在块dwg中,分解块并从图形中清除块,然后另存为房间。dwg在ACAD库搜索路径中,它将工作。
回复

使用道具 举报

57

主题

351

帖子

294

银币

后起之秀

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

铜币
285
发表于 2022-7-6 16:14:08 | 显示全部楼层
这几乎完美无瑕。出于某种原因,虽然它没有在插入点插入,但它会偏离约1.5英尺。我该如何解决这个问题?我注意到,当我选择块时,它在插入点处有一个夹点,如果这有助于了解其插入关闭的原因的话。
回复

使用道具 举报

57

主题

351

帖子

294

银币

后起之秀

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

铜币
285
发表于 2022-7-6 16:19:53 | 显示全部楼层
nvm我修复了它。我的区块在原始dwg中不是0,0,我移动了它,现在它工作得很好,谢谢!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:26:35 | 显示全部楼层
好极了-我想这可能是关于插入点的问题。
 
很高兴你能正常工作。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 18:31 , Processed in 0.778705 second(s), 82 queries .

© 2020-2025 乐筑天下

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