乐筑天下

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

[编程交流] 按命令行“缩放X-Y-Z”

[复制链接]

20

主题

94

帖子

86

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 16:01:26 | 显示全部楼层 |阅读模式
你好
 
我想在这个lisp中通过命令行传递“缩放x-y-z”值。
 
这些值是相同的。
 
  1. (defun c:spd  (/ sp p)
  2. ;; Tharwat 15.Feb.2016 ;;
  3. (setq sp
  4.         (vlax-get (vla-get-activelayout
  5.                     (vla-get-ActiveDocument (vlax-get-acad-object)))
  6.                   'Block)
  7.        )
  8. (if (tblsearch "BLOCK" "spotd")
  9.    (while (setq p (getpoint "\nSpecify point :"))
  10.      (vla-put-textstring
  11.        (car (vlax-invoke
  12.               (vla-insertblock
  13.                 sp
  14.                 (vlax-3d-point p)
  15.                 "spotd"
  16.             [color="red"]    0.8
  17.                 0.8
  18.                 0.8[/color]
  19.                 0.0)
  20.               'getattributes))
  21.       
  22. (rtos (/ (cadr p) 1000.) 2 2)
  23.        )
  24.      )
  25.    )
  26. (princ)
  27. )(vl-load-com)

 
谢谢
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 16:19:01 | 显示全部楼层
你好
 
我不确定您是否知道您修改的值(0.8)属于块的比例(XYZ),而不是您计划写入块的值!
 
你能展示一下你期待的项目结果吗?
回复

使用道具 举报

20

主题

94

帖子

86

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 16:27:48 | 显示全部楼层
我想通过命令行添加比例值。
 
类似于:
  1. "\nSpecify the scale :"
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 16:45:55 | 显示全部楼层
像这样的?
 
  1. (defun c:spd (/ sp p sc)
  2. ;; Tharwat 15.Feb.2016 ;;
  3. (setq sp
  4.         (vlax-get (vla-get-activelayout
  5.                     (vla-get-activedocument (vlax-get-acad-object))
  6.                   )
  7.                   'block
  8.         )
  9. )
  10. (if (tblsearch "BLOCK" "spotd")
  11.    (if (setq sc (getreal "\nSpecy scale of block :"))
  12.      (while (setq p (getpoint "\nSpecify point :"))
  13.        (vla-put-textstring
  14.          (car (vlax-invoke
  15.                 (vla-insertblock
  16.                   sp
  17.                   (vlax-3d-point p)
  18.                   "spotd"
  19.                   sc
  20.                   sc
  21.                   sc
  22.                   0.0
  23.                 )
  24.                 'getattributes
  25.               )
  26.          )
  27.          (rtos (/ (cadr p) 1000.) 2 2)
  28.        )
  29.      )
  30.    )
  31.    (princ
  32.      "\nBock name 'spotd' os not found in current drawing <!>"
  33.    )
  34. )
  35. (princ)
  36. )(vl-load-com)
回复

使用道具 举报

20

主题

94

帖子

86

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 16:57:45 | 显示全部楼层
谢谢
 
这个lisp很好用,但是:
 
1.是否可以将“sc”的默认值设置为1,并在必要时进行更改?
 
2、“sc”的值是否可以保存?现在,每次我使用这个lisp,我都需要指定比例。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:07:44 | 显示全部楼层
看看这可能是有用的,我相信其他人会提供建议。
 
  1. (if (= horiz nil)
  2.    (progn (setq horiz 100)
  3.    (prompt "\nEnter Horizontal scale <-ve to reset> :<")
  4.    (prin1 horiz)
  5.    (prompt ">:")
  6.    (setq newhoriz (getint))
  7. (cond
  8. ((= newhoriz nil)(PRINC "\N"))
  9. ((< newhoriz 0)(setq horiz nil)(alert "do xfp again values have been reset")(exit))
  10. ((/= newhoriz nil)(setq horiz newhoriz))
  11. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 21:04 , Processed in 1.987015 second(s), 65 queries .

© 2020-2025 乐筑天下

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