乐筑天下

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

[编程交流] 调试帮助

[复制链接]

5

主题

26

帖子

21

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 08:23:59 | 显示全部楼层 |阅读模式
  1. (defun C:rpb ()
  2. (defun dxf (code ent) (cdr (assoc code (entget ent))))
  3. (setvar 'Attreq 1)
  4. (setvar 'Attdia 1)
  5. (prompt "Select old blocks: ")
  6. (setq blv (ssget "_:L" '((0 . "INSERT"))))
  7. (setq bln (car (entsel "\nSelect new block: ")))
  8. ;(setq bln (getstring "\nEnter new block name: "))
  9. (setq atr (dxf 1 bln))
  10. (repeat (setq i (sslength blv))
  11.    (setq e (ssname blv (setq i (1- i))))
  12.    (command
  13.      "_.-insert"
  14.      bln
  15.      (cdr (assoc 10 (entget e)))
  16.      "" "" ""
  17.      atr
  18.    )
  19.    (command "_.erase" e "")
  20. )
  21. )

尝试将具有1个属性的某些块替换为具有1个属性的单个块。。。很多错误。。帮助
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 08:40:12 | 显示全部楼层
首先,你从一个defun自身的“dxf”中调用它,这是一个混乱的开始,defun用于需要来回跳转到它们的地方,而不仅仅是lisp的自上而下运行。将SETVAR放在defun外的起始位置。最好描述一下你想做什么。
回复

使用道具 举报

5

主题

26

帖子

21

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 08:57:35 | 显示全部楼层
我试图用一个具有1个属性的块替换10个具有1个属性的块。。。但是为了保持这10个块的相同属性。。。因此,10个旧块是*block1type,1 attrib,新的块是*block2type,i attrib。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:20:18 | 显示全部楼层
与应用程序结合时需要考虑的因素(即本机命令插入)
插入点=10(也考虑UCS)
比例=41-43(取决于块的比例特性)
旋转=50
层=8(当前到目标层)
属性0
收件人0
Osmode模式
 
最好创建一个通用例程,按标记/顺序/标记数量进行匹配
 
HTH公司
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:32:52 | 显示全部楼层
 
从“rpb”的函数定义中定义函数“dxf”没有错,事实上,我一直这样做是为了定位子函数,以确保其范围保持在主函数的范围内。
 
考虑这个例子:
 
  1. (defun c:test ( / _sub str )
  2.    (defun _sub ( msg )
  3.        (alert (strcat "This is my message to you\n\n" msg))
  4.    )
  5.    (setq str (getstring t "\nEnter a Message: "))
  6.    (_sub str)
  7.    (princ)
  8. )

 
函数“u sub”将在函数“c:test”求值时定义,然后在函数“c:test”完成时停止定义。这有很多好处:从安全角度来看,因为在“c:test”函数之外无法访问该函数;我可以肯定,符号“u-sub”使用的是我给它的定义,因为符号“u-sub”位于“c:test”函数定义中。
 
诚然,OP没有将其函数/变量本地化。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 08:17 , Processed in 0.420498 second(s), 73 queries .

© 2020-2025 乐筑天下

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