乐筑天下

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

[编程交流] “Wblock”对话框

[复制链接]

11

主题

44

帖子

33

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 06:12:10 | 显示全部楼层 |阅读模式
嘿伙计们,
 
我正在将一些三维实体转换成可用的二维动态块,我正在编写一个快速的小lisp,这将有助于加快速度。
 
  1. (defun c:test (/ obj obj2 bp name)
  2. (setq obj (entsel))
  3. (command
  4.    "_-view" "_top"
  5.    "flatshot" '(0 0) 1 1 0
  6.    "_erase" obj ""
  7.    "_explode" "_all"
  8.    )
  9. (setq obj2 (ssget))
  10. (setq bp (getpoint "\nWhere is basepoint?: "))
  11. (setq name (getstring T "\nWhat is the name of the block?: "))
  12. (command
  13. "_block" name bp obj2 ""
  14. "_insert" name '(0 0) 1 1 0
  15. "wblock"
  16. )
  17. )

 
我的问题是wblock命令,有没有办法打开对话框?如果没有,我需要将块文件导出到不同的文件路径(不是每次,而是大部分)。。。你的方法是什么?
 
谢谢
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 06:27:50 | 显示全部楼层
你已经测试过你想要自动化的方法了吗?
回复

使用道具 举报

2

主题

389

帖子

387

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 06:40:22 | 显示全部楼层
您是否在WBLOCK命令之前尝试过发出initdia?进行此操作时,您需要将其分开。例如。
 
  1. (initdia)
  2. (command "WBLOCK")
回复

使用道具 举报

11

主题

44

帖子

33

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 06:50:35 | 显示全部楼层
 
都是这些我不知道的代码。。。谢谢
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 06:55:31 | 显示全部楼层
你打算在你的新程序中加入OVERKILL命令吗?
回复

使用道具 举报

11

主题

44

帖子

33

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 07:09:29 | 显示全部楼层
 
既然你提到了,我可能会的。
 
在添加wblock命令后,我意识到不需要在fshot之后创建块。所发生的事情是,块被导出到图形内部,我只需要为我的目的显示线。
 
  1. (defun c:test (/ obj obj2 bp name)
  2. (setq obj (entsel));;select 3D to flatten
  3. (command
  4.    "_-view" "_top"
  5.    "flatshot" '(0 0) 1 1 0
  6.    "_erase" obj "";;erase 3D entitiy
  7.    "_explode" "_all";;explode fshot block
  8.    "overkill" "_all"
  9.    )
  10. (setq obj2 (ssget));;select newly create 2D lines
  11. (setq bp (getpoint "\nWhere is basepoint?: "));;Basepoint for Block
  12. (setq name (getstring T "\nWhat is the name of the block?: "));;name for block
  13. (initdia)
  14. (command
  15. "-wblock" "" name bp obj2
  16. )
  17. )

 
出于某种原因,它说overkill是一个未知的命令
 
此外,使用FSHOT命令将线宽设置为0,将线宽设置为bylayer的命令是什么?
回复

使用道具 举报

11

主题

44

帖子

33

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 07:12:30 | 显示全部楼层
这是我正在使用的更新代码,以防其他人发现这很有用。
 
添加了一些错误检查。在fshot之后仍然无法确定线宽,但我可以稍后更改。
 
  1. (defun c:Z (/ obj obj2 bp un)
  2. (if (setq un (getint "\nWhat are your units? 1-Inches 2-Feet 3-Millimeters 4-Meters "))
  3.    (progn
  4.      (cond
  5. ((= un 1)
  6. (command
  7.    "_.insunits" 1 ""
  8.    );;end command
  9. )
  10. ((= un 2)
  11. (command
  12.    "_.insunits" 2 ""
  13.    );;end command
  14. )
  15. ((= un 3)
  16. (command
  17.    "_.insunits" 4 ""
  18.    );;end command
  19. )
  20. ((= un 4)
  21. (command
  22.    "_.insunits" 6 ""
  23.    );;end command
  24. )
  25. ((> un 4)
  26. (alert "PLEASE SELECT APPROPRIATE UNITS")
  27. )
  28. ((< un 1)
  29. (alert "PLEASE SELECT APPROPRIATE UNITS")
  30. )
  31.      )
  32.      )
  33.    (alert "PLEASE SELECT APPROPRIATE UNITS")
  34.    )
  35. (IF (setq obj (entsel));;select 3D object to flatten
  36.    (progn
  37.      (command
  38. "_-view" "_top"
  39. "flatshot" '(0 0) 1 1 0
  40. "_.erase" obj "";;erase 3D entitiy
  41. "_.explode" "_all";;explode fshot block
  42. "_.overkill" "_all"
  43. )
  44. (setq obj2 (ssget));;select newly create 2D lines
  45. (setq bp (getpoint "\nWhere is basepoint?: "));;Basepoint for Block
  46. (initdia)
  47. (command
  48. "-wblock" "" bp obj2 ""
  49. "_.CLOSE" "Y"
  50. )
  51. )
  52. (alert "NO OBJECTS SELECTED!"))
  53. (princ)
  54. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 18:20 , Processed in 0.424814 second(s), 66 queries .

© 2020-2025 乐筑天下

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