winerfjy 发表于 2016-1-7 17:44:23

实体开孔程序

哪位大虾能改下可以指定深度同方向码如下
(defun c:test(/ a b n s1 c)
(setvar "cmdecho" 0)
(princ"\n选择要开孔的实体:")
(setq a(ssget'((0 . "3DSOLID"))))
(princ"\n选择开孔线:")
(setq b(ssget'((0 . "LWPOLYLINE,circle"))))
(setq n 0)
(repeat (sslength b)
(setq s1(ssname b n))
(command "_extrude" s1 "" -1000 "")
(while (> (getvar "CMDACTIVE") 0)
(command PAUSE))
(setq c(entlast))
(command "_subtract" a "" c "")
(setq n(+ 1 n)))
(princ"\n程序执行完成!")
(princ))

lidaxiu 发表于 2016-1-7 18:37:26

(command "_extrude" s1 "" -1000 "")
这句中的-1000是达不到你图中的距离,哥们,你把这值改成-99999~~
往大里改就行了

lidaxiu 发表于 2016-1-7 18:39:04


lidaxiu 发表于 2016-1-7 18:41:12

说白了,就是用了
1.拉伸 extrude
2.求差集 subtract

xyp1964 发表于 2016-1-7 19:41:49


;; 用不上别下载

winerfjy 发表于 2016-1-8 12:27:46

lidaxiu 发表于 2016-1-7 18:37 static/image/common/back.gif
(command "_extrude" s1 "" -1000 "")
这句中的-1000是达不到你图中的距离,哥们,你把这值改成-99999~~ ...

我说的是指定深度你画的圆在实体上面也好在实体下面也好他都能在实体上钻一个你指定深度的孔不是搞个无穷大的长度

lidaxiu 发表于 2016-1-8 13:07:25

,这个可以自己写下吧兄弟

lidaxiu 发表于 2016-1-8 13:07:55

(setq INT (getint "\n输入孔深: "))
(command "_extrude" s1 "" (* -1 INT) "")

lidaxiu 发表于 2016-1-8 13:08:29

把这个加进去
页: [1]
查看完整版本: 实体开孔程序