lengxiaxi 发表于 2024-7-5 14:35:51

批量圆形变螺孔,程序修改

原版程序,来自于版主ZZXXQQ;感谢版主大人!

这个程序目前的功能,批量选择圆孔后,可以添加螺纹线;

存在的问题:生成螺纹线的同时,会改掉原始底孔的大小;

希望更改:生成螺纹线的同时,保持原有底孔大小不变;螺纹线实际外径大小无所谓,无需按标注牙孔匹配生成,取值固定为原始底孔大小的1.2倍也行;


;圆变螺孔 明经 ZZXXQQ 2010.9.8

(defun c:lk ()

(defun mkline (p1 p2 ln)

(entmake (list '(0 . "LINE") (cons 8 ln) (cons 10 p1) (cons 11 p2)))

)

(setvar "CMDECHO" 0)

(if (and (princ "\n选择要加螺纹的圆 :")

          (setq ss (ssget '((0 . "CIRCLE"))))) (progn

(setq i 0)

(repeat (sslength ss)

   (setq en (ssname ss i)

         ent (entget en)

         i (1+ i)

         pc (cdr(assoc 10 ent))

         r (cdr(assoc 40 ent))

         ri (* r 0.9)

         ro (* r 1.1)

         pc1 (polar pc 0 ro)

         pc2 (polar pc pi ro)

         pc3 (polar pc (/ pi 2) ro)

         pc4 (polar pc (/ pi -2) ro)

         an1 (/ pi 3)

         an2 (/ pi -6))

   (if (not (tblsearch "LAYER" "center"))

    (command ".LAYER" "N" "center" "C" 1 "center" "L" "CENTER" "CEN" "")

   )

   (mkline pc1 pc2 "center")

   (mkline pc3 pc4 "center")

   (entmake (list '(0 . "CIRCLE") (assoc 8 ent) (cons 10 pc) (cons 40 ri)))

   (entmake

    (list '(0 . "ARC") (cons 10 pc) (cons 40 r) (cons 50 an1) (cons 51 an2) '(62 . 1))

   )

   (entdel en)

)

))

(setvar "CMDECHO" 1)

(princ)

yoyoho 发表于 2024-7-5 15:59:14

;圆变螺孔 明经 ZZXXQQ 2010.9.8

(defun c:lk ()

(defun mkline (p1 p2 ln)

(entmake (list '(0 . "LINE") (cons 8 ln) (cons 10 p1) (cons 11 p2)))

)

(setvar "CMDECHO" 0)

(if (and (princ "\n选择要加螺纹的圆 :")

          (setq ss (ssget '((0 . "CIRCLE"))))) (progn

(setq i 0)

(repeat (sslength ss)

   (setq en (ssname ss i)

         ent (entget en)

         i (1+ i)

         pc (cdr(assoc 10 ent))

         r (cdr(assoc 40 ent))

         ri (* r 1.0)

         ro (* r 1.2)

         pc1 (polar pc 0 ro)

         pc2 (polar pc pi ro)

         pc3 (polar pc (/ pi 2) ro)

         pc4 (polar pc (/ pi -2) ro)

         an1 (/ pi 3)

         an2 (/ pi -6))

   (if (not (tblsearch "LAYER" "center"))

    (command ".LAYER" "N" "center" "C" 1 "center" "L" "CENTER" "CEN" "")

   )

   (mkline pc1 pc2 "center")

   (mkline pc3 pc4 "center")

   (entmake (list '(0 . "CIRCLE") (assoc 8 ent) (cons 10 pc) (cons 40 ri)))

   (entmake

    (list '(0 . "ARC") (cons 10 pc) (cons 40 ro) (cons 50 an1) (cons 51 an2) '(62 . 1))

   )

   (entdel en)

)

))

(setvar "CMDECHO" 1)

(princ)
)

ynhh 发表于 2024-7-5 23:11:12

我不懂机械
看有的圆弧是画在里面?
你这是不是应有个判断
分为内外两种画法



paulpipi 发表于 2024-7-5 17:01:22

感谢分享,试用一下

MZ_li 发表于 2024-7-5 17:07:29

收藏了,好东西

ljpnb 发表于 2024-7-6 06:38:02

如5楼说的,画法有两种,外螺纹的螺纹线加在内侧,内螺纹的螺纹线画在外侧,而且螺纹线的线型是细实线,不是中心线

xxyyzzlg 发表于 2024-7-6 07:24:08

挺实用的功能。

lengxiaxi 发表于 2024-7-6 11:00:55

ljpnb 发表于 2024-7-6 06:38
如5楼说的,画法有两种,外螺纹的螺纹线加在内侧,内螺纹的螺纹线画在外侧,而且螺纹线的线型是细实线,不 ...

前辈说得对;

严格意义来讲,确实不符合标准;程序目前符合个人使用。如果要做成多功能,分内外,且按不同底孔,做到标准螺纹直径,包括线性线宽。那就需要深入改造了;

cchessbd 发表于 2024-7-6 16:00:00

本帖最后由 cchessbd 于 2024-7-6 16:11 编辑

ynhh 发表于 2024-7-5 23:11
我不懂机械
看有的圆弧是画在里面?
你这是不是应有个判断

说的很对,我花了几个小时改好了,可以将圆孔改为公制螺纹攻牙底孔。当然,你的M1.6~M48【含M3.5】圆孔值要标准。因为还有装配孔。
里面加了判断,只有标准M牙孔才会更改为对应的底孔。这下好了,免去机械加工记忆之苦。
因为机械加工一般叫牙孔,加工这种孔叫攻牙。没有螺孔这种叫法,因此改为了GY。收费1个币吧。
支持M1.6~M48【含M3.5】的公制螺纹圆改为对应底孔。






south 发表于 2024-7-6 20:29:04

cchessbd 发表于 2024-7-6 16:00
说的很对,我花了几个小时改好了,可以将圆孔改为公制螺纹攻牙底孔。当然,你的M1.6~M48【含M3.5】圆孔值 ...

命令可以帮忙加长点吗,方便调用时不冲突
页: [1] 2
查看完整版本: 批量圆形变螺孔,程序修改