Lisp命令:切片法线(re
谢谢你参加这个论坛。这是我的问题:
我经常使用“切片”命令来切割实体。这是我的简单捷径:
(DEFUN C:S ()(COMMAND "_SLICE"))
与大多数情况下平行于UCS平面剪切一样,我几乎总是必须键入以下选项之一:
[...XY/YZ/ZX...] xy
每天有数百次割伤,这让人感到厌倦。
这是我的问题:
为了加快建模速度,使用3个快捷命令将非常有用:
SX。。。平行于YZ平面的切片
SY。。。平行于ZX平面的切片
SZ。。。平行于XY平面的切片
程序:sx右鼠标按钮选择对象RMB选择平面上的点RMB选择侧面的点以保留RMB
有人能发布LISP代码吗?非常感谢你的帮助。非常感谢。
伦道夫 我已经知道了:
(DEFUN C:SX ()
(SETQ OBJEKTE (SSGET))
(SETQ PUNKT (GETPOINT "\nPoint on YZ plane:"))
(SETQ SEITE (GETPOINT "\nSide to keep:"))
(COMMAND "_OSNAP" "")
(COMMAND "_SLICE" "_SI" OBJEKTE "_YZ" PUNKT SEITE)
(COMMAND "_OSNAP" "_END,_INT,_MID,_CEN,_INS,_PER")
(COMMAND "_REDRAW")
(SETQ OBJEKTE NIL)
)
你好
这是一个“三合一”
(mapcar
'(lambda (fun opt)
(eval (list 'defun
fun
nil
(list 'vl-cmdf "_.slice" '(ssget) "" opt pause pause)
'(princ)
)
)
)
'(c:SX c:SY c:SZ)
'("XY" "YZ" "ZX")
) 保持两面性。也许有人需要它,尽管我想它太简单了,你们中的许多人都不感兴趣
(DEFUN C:SXA ()
(SETQ OBJEKTE (SSGET))
(SETQ PUNKT (GETPOINT "\nPunkt :"))
(COMMAND "_OSNAP" "")
(COMMAND "_SLICE" "_SI" OBJEKTE "_YZ" PUNKT "_B")
(COMMAND "_OSNAP" "_END,_INT,_MID,_CEN,_INS,_PER")
(COMMAND "_REDRAW")
(SETQ OBJEKTE NIL)
)
嗨,吉尔,
哇,看来我的方法有点尴尬。。。
伦道夫 但飞机不知怎么搞混了。。。但没问题。必须是:
'(c:SX c:SY c:SZ)
'("YZ" "ZX" "XY")
我想是吧。谢谢 不错的Gile mapcar语句只是一种有趣而优雅的方式,以避免生成仅在某些选项上不同的类似函数。
你可以写3(或6)(defun…)它将执行相同的操作,但查看vl cmdf函数,而不是命令,它允许使用(ssget)作为参数。
(defun c:SX ()
(vl-cmdf "_.slice" (ssget) "" "XY" pause pause)
(princ)
)
更进一步说,“6合1”
(mapcar
'(lambda (fun opt1 opt2)
(eval (list 'defun
fun
nil
(list 'vl-cmdf "_.slice" '(ssget) "" opt1 pause opt2)
'(princ)
)
)
)
'(c:SX c:SY c:SZ c:SXA c:SYA c:SZA)
'("XY" "YZ" "ZX" "XY" "YZ" "ZX")
'(pause pause pause "_both" "_both" "_both")
) 嘿,看起来很熟悉。我一定在别处见过你这样做。
(mapcar
'(lambda (f r)
(eval (list 'defun
f
nil
(list 'setvar "filletrad" r)
(list 'princ (strcat "\nFillet radius set to: " (rtos r)))
(list 'vl-cmdf "_.fillet")
'(princ)
)
)
)
'(c:FF c:F1 c:F15 c:F2 c:F3 c:F4 c:F5 c:F6 c:F7 c:F8 c:F9)
'(0 1 1.5 2 3 4 5 6 7 8 9)
) 嗨,艾伦,
这不是我的(我不使用太多圆角),但我在几天前写过一篇文章,用numpad在预定义视图之间切换。
(mapcar
'(lambda (f v)
(eval (list 'defun
f
nil
(list 'command "_.view" v)
'(princ)
)
)
)
'(c:0 c:1 c:2 c:3 c:4 c:5 c:6 c:7 c:8 c:9)
'("_bottom" "_swiso" "_front" "_seiso" "_left" "_top" "_right" "_nwiso"
"_back" "_neiso")
)
页:
[1]
2