乐筑天下

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

[编程交流] Lisp命令:切片法线(re

[复制链接]

13

主题

81

帖子

68

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 12:44:41 | 显示全部楼层 |阅读模式
谢谢你参加这个论坛。
 
这是我的问题:
 
我经常使用“切片”命令来切割实体。这是我的简单捷径:
 
  1. (DEFUN C:S ()(COMMAND "_SLICE"))

 
与大多数情况下平行于UCS平面剪切一样,我几乎总是必须键入以下选项之一:
 
  1. [...XY/YZ/ZX...] xy

 
每天有数百次割伤,这让人感到厌倦。
 
这是我的问题:
 
为了加快建模速度,使用3个快捷命令将非常有用:
 
SX。。。平行于YZ平面的切片
SY。。。平行于ZX平面的切片
SZ。。。平行于XY平面的切片
 
程序:sx右鼠标按钮选择对象RMB选择平面上的点RMB选择侧面的点以保留RMB
 
有人能发布LISP代码吗?非常感谢你的帮助。非常感谢。
 
伦道夫
回复

使用道具 举报

13

主题

81

帖子

68

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 12:55:07 | 显示全部楼层
我已经知道了:
 
  1. (DEFUN C:SX ()
  2. (SETQ OBJEKTE (SSGET))
  3. (SETQ PUNKT (GETPOINT "\nPoint on YZ plane:"))
  4. (SETQ SEITE (GETPOINT "\nSide to keep:"))
  5. (COMMAND "_OSNAP" "")
  6. (COMMAND "_SLICE" "_SI" OBJEKTE "_YZ" PUNKT SEITE)
  7. (COMMAND "_OSNAP" "_END,_INT,_MID,_CEN,_INS,_PER")
  8. (COMMAND "_REDRAW")
  9. (SETQ OBJEKTE NIL)
  10. )
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2022-7-6 13:00:47 | 显示全部楼层
你好
 
这是一个“三合一”
 
  1. (mapcar
  2. '(lambda (fun opt)
  3.     (eval (list 'defun
  4.                 fun
  5.                 nil
  6.                 (list 'vl-cmdf "_.slice" '(ssget) "" opt pause pause)
  7.                 '(princ)
  8.           )
  9.     )
  10.   )
  11. '(c:SX c:SY c:SZ)
  12. '("XY" "YZ" "ZX")
  13. )
回复

使用道具 举报

13

主题

81

帖子

68

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 13:06:12 | 显示全部楼层
保持两面性。也许有人需要它,尽管我想它太简单了,你们中的许多人都不感兴趣
 
  1. (DEFUN C:SXA ()
  2. (SETQ OBJEKTE (SSGET))
  3. (SETQ PUNKT (GETPOINT "\nPunkt :"))
  4. (COMMAND "_OSNAP" "")
  5. (COMMAND "_SLICE" "_SI" OBJEKTE "_YZ" PUNKT "_B")
  6. (COMMAND "_OSNAP" "_END,_INT,_MID,_CEN,_INS,_PER")
  7. (COMMAND "_REDRAW")
  8. (SETQ OBJEKTE NIL)
  9. )
回复

使用道具 举报

13

主题

81

帖子

68

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 13:13:08 | 显示全部楼层
嗨,吉尔,
 
哇,看来我的方法有点尴尬。。。
 
伦道夫
回复

使用道具 举报

13

主题

81

帖子

68

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 13:18:13 | 显示全部楼层
但飞机不知怎么搞混了。。。但没问题。必须是:
 
  1. '(c:SX c:SY c:SZ)
  2. '("YZ" "ZX" "XY")

我想是吧。谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:24:07 | 显示全部楼层
不错的Gile
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2022-7-6 13:32:07 | 显示全部楼层
mapcar语句只是一种有趣而优雅的方式,以避免生成仅在某些选项上不同的类似函数。
 
你可以写3(或6)(defun…)它将执行相同的操作,但查看vl cmdf函数,而不是命令,它允许使用(ssget)作为参数。
 
  1. (defun c:SX ()
  2. (vl-cmdf "_.slice" (ssget) "" "XY" pause pause)
  3. (princ)
  4. )

 
更进一步说,“6合1”
 
  1. (mapcar
  2. '(lambda (fun opt1 opt2)
  3.     (eval (list 'defun
  4.                 fun
  5.                 nil
  6.                 (list 'vl-cmdf "_.slice" '(ssget) "" opt1 pause opt2)
  7.                 '(princ)
  8.           )
  9.     )
  10.   )
  11. '(c:SX c:SY c:SZ c:SXA c:SYA c:SZA)
  12. '("XY" "YZ" "ZX" "XY" "YZ" "ZX")
  13. '(pause pause pause "_both" "_both" "_both")
  14. )
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 13:32:49 | 显示全部楼层
嘿,看起来很熟悉。我一定在别处见过你这样做。
  1. (mapcar
  2. '(lambda (f r)
  3.     (eval (list 'defun
  4.         f
  5.         nil
  6.         (list 'setvar "filletrad" r)
  7.         (list 'princ (strcat "\nFillet radius set to: " (rtos r)))
  8.         (list 'vl-cmdf "_.fillet")
  9.         '(princ)
  10.       )
  11.     )
  12.   )
  13. '(c:FF    c:F1    c:F15    c:F2    c:F3    c:F4    c:F5    c:F6    c:F7    c:F8    c:F9)
  14. '(0        1    1.5    2    3    4    5    6    7    8    9)
  15. )
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2022-7-6 13:44:32 | 显示全部楼层
嗨,艾伦,
 
这不是我的(我不使用太多圆角),但我在几天前写过一篇文章,用numpad在预定义视图之间切换。
 
  1. (mapcar
  2. '(lambda (f v)
  3.     (eval (list 'defun
  4.                 f
  5.                 nil
  6.                 (list 'command "_.view" v)
  7.                 '(princ)
  8.           )
  9.     )
  10.   )
  11. '(c:0 c:1 c:2 c:3 c:4 c:5 c:6 c:7 c:8 c:9)
  12. '("_bottom" "_swiso" "_front" "_seiso" "_left" "_top" "_right" "_nwiso"
  13.    "_back" "_neiso")
  14. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 04:52 , Processed in 0.496564 second(s), 72 queries .

© 2020-2025 乐筑天下

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