乐筑天下

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

[编程交流] 阻碍

[复制链接]

4

主题

26

帖子

23

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 10:44:49 | 显示全部楼层 |阅读模式
大家好!
 
我想写一个autolisp函数,插入一个特定的块。
 
所以:插入->块->“myblock”+输入。
 
这就是我想从代码中做的,因为它必须做1000次。。。。
 
谢谢你的帮助!
 
(这与“_insert”命令有关…)
回复

使用道具 举报

10

主题

92

帖子

82

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-6 10:54:59 | 显示全部楼层
给我们一些细节。
1、区块名称
2、比例因子
3、旋转角度
4、任何你想要插入的特定层。
回复

使用道具 举报

4

主题

26

帖子

23

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 11:13:03 | 显示全部楼层
 
例如:
1、区块名称:myblock
2、比例因子:在屏幕上指定
3、旋转:在屏幕上指定
 
或比例因子:1,1,1
旋转:0.0
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:16:36 | 显示全部楼层
快速示例。。。
 
  1. (defun _InsertBlock (block x y / x y)
  2. ;; block - name of block
  3. ;; x     - X scale for block (nil for on-screen prompt)
  4. ;; y     - Y scale for block (nil for on-screen prompt)
  5. ;; Alan J. Thompson, 07.19.10
  6. (if (or (tblsearch "BLOCK" block) (findfile (strcat block ".DWG")))
  7.    (if (and (or x
  8.                 (setq x (cond ((getdist "\nSpecify X value <1.0>: "))
  9.                               (1.)
  10.                         )
  11.                 )
  12.             )
  13.             (or y
  14.                 (setq y (cond ((getdist (strcat "\nSpecify Y value <" (rtos x) ">: ")))
  15.                               (x)
  16.                         )
  17.                 )
  18.             )
  19.        )
  20.      (command "_.-insert" block "_X" x "_Y" y)
  21.    )
  22.    (alert (strcat "Block: "" block "" cannot be found!"))
  23. )
  24. (princ)
  25. )
  26. (defun c:Test1 (/) (_InsertBlock "P6" nil nil) (princ))
  27. (defun c:TEst2 (/) (_InsertBlock "P6" 1. 1.) (princ))
  28. (defun c:TEst3 (/) (_InsertBlock "P6" 1. nil) (princ))
回复

使用道具 举报

4

主题

26

帖子

23

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 11:30:34 | 显示全部楼层
谢谢!
 
你能给我一些建议吗?我在哪里可以找到有关“_.-insert”命令的信息。
我刚找到“插入”。。。
 
我如何等待用户输入Lisp代码?
 
谢谢
 
 
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:41:42 | 显示全部楼层
_忽略语言更改
. 忽略重新定义的命令
-发出命令的命令行版本(如果可用)
 
实际上,这可能更适合你。。。
 
  1. (defun _InsertBlock (block x y r / x y r)
  2. ;; block - name of block
  3. ;; x     - X scale for block (nil for on-screen prompt)
  4. ;; y     - Y scale for block (nil for on-screen prompt)
  5. ;; r     - rotation of block (nil for on-screen prompt) [MUST BE IN RADIANS]
  6. ;; Alan J. Thompson, 07.19.10
  7. (if (or (tblsearch "BLOCK" block) (findfile (strcat block ".DWG")))
  8.    (if (and (or x
  9.                 (setq x (cond ((getdist "\nSpecify X value <1.0>: "))
  10.                               (1.)
  11.                         )
  12.                 )
  13.             )
  14.             (or y
  15.                 (setq y (cond ((getdist (strcat "\nSpecify Y value <" (rtos x) ">: ")))
  16.                               (x)
  17.                         )
  18.                 )
  19.             )
  20.        )
  21.      (progn
  22.        (command "_.-insert" block "_X" x "_Y" y)
  23.        (and r (command "_r" (angtos r)))
  24.      )
  25.    )
  26.    (alert (strcat "Block: "" block "" cannot be found!"))
  27. )
  28. (princ)
  29. )
  30. (defun c:Test1 (/) (_InsertBlock "P6" nil nil nil) (princ))
  31. (defun c:TEst2 (/) (_InsertBlock "P6" 1. 1. nil) (princ))
  32. (defun c:TEst3 (/) (_InsertBlock "P6" nil nil pi) (princ))
回复

使用道具 举报

4

主题

26

帖子

23

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 11:46:25 | 显示全部楼层
你好
 
我想迭代这个命令,那么如何等待用户输入呢?
 
具体来说:我想插入我的块,直到用户说OK,就够了。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 16:53 , Processed in 0.564201 second(s), 66 queries .

© 2020-2025 乐筑天下

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