669423907 发表于 2011-10-30 22:10:34

在螺纹孔上加中心线(多谢cabinsummer 大师热情帮助)

本帖最后由 669423907 于 2011-11-5 23:11 编辑

我加了切换图层的功能,哪位大师方便帮加上十字中心线吖?非常感激!
如果能开捕捉那就更好了!

(defun c:M10()
(setq la (getvar"clayer"))
(setvar "osmode" 0)
(setq p (getpoint"\nEnter the center:"))
(setq p1 (list (car p) (- (cadr p) 5)))
(setq p2 (list (- (car p) 5) (cadr p)))
(command "clayer" "0")
(command"circle" p 4.35)
(command "layer" "m" "螺纹" "c" "2" "" "lw" "0.13" "" "l" "Continuous" "" "")
(command"arc" "ce" p p1 p2)
(command "layer" "m" "中心线" "c" "1" "" "lw" "0.13" "" "l" "CENTER" "" "")
???????????????????????????????????????????????
(setvar "osmode" 6071)
(setvar "clayer"la))



cabinsummer 发表于 2011-10-30 22:44:28

本帖最后由 cabinsummer 于 2011-10-31 18:36 编辑

(defun c:cross(/ ss n ename edata pt pt1 pt2 pt3 pt4)
(if (setq ss (ssget '((0 . "circle"))))                                    ;;;选择以圆构成的选择集
    (progn
      (setq n 0)                                                               ;;;选择集计数
      (repeat (sslength ss)                                                    ;;;重复选择集元素的数量次数
      (setq ename (ssname ss n))                                             ;;;图元名
      (setq edata (entget ename))                                          ;;;图元数据
      (setq r (cdr (assoc 40 edata)))                                        ;;;提取圆的半径
      (setq pt (cdr (assoc 10 edata)))                                       ;;;提取圆的中心点
      (setq pt1 (polar pt pi (* r 1.3)))                                     ;;;中心线左端点
      (setq pt2 (polar pt 0 (* r 1.3)))                                    ;;;中心线右端点
      (setq pt3 (polar pt (* pi 0.5)(* r 1.3)))                              ;;;中心线上端点
      (setq pt4 (polar pt (* pi 1.5)(* r 1.3)))                              ;;;中心线下端点
      (entmake (list '(0 . "line")(cons 10 pt1)(cons 11 pt2)'(8 . "center")));;;画水平线
      (entmake (list '(0 . "line")(cons 10 pt3)(cons 11 pt4)'(8 . "center")));;;画垂直线
      (setq n (1+ n))                                                      ;;;选择集计数加一
      )
    )
)
(princ)                                                                      ;;;静默退出
)

shcvip 发表于 2022-6-24 12:25:39

cabinsummer 发表于 2011-10-30 23:52
以下代码由块插入实现功能

里面的数字,不能变量吗

cabinsummer 发表于 2011-10-30 22:26:19

简单至极~~~~

669423907 发表于 2011-10-30 22:44:51

cabinsummer 发表于 2011-10-30 22:26 static/image/common/back.gif
简单至极~~~~

看见风吹过,请留个影吧!?

669423907 发表于 2011-10-30 22:54:18

cabinsummer 发表于 2011-10-30 22:44 static/image/common/back.gif


非常感谢 cabinsummer 大师
马上试用!

cabinsummer 发表于 2011-10-30 22:59:11

使用方法:选择圆即可,可框选、点选、窗口选,无论多少自动加中心线。

669423907 发表于 2011-10-30 23:00:17

cabinsummer 发表于 2011-10-30 22:44 static/image/common/back.gif


cabinsummer 大师吖,不是这样的!
我是只在画出螺纹孔的同时自动在螺纹孔上画出中心线。
麻烦大师帮合并一下啦!

cabinsummer 发表于 2011-10-30 23:08:33

本帖最后由 cabinsummer 于 2011-10-30 23:17 编辑

(defun c:M10()
(setvar "cmdecho" 0)
(setq la (getvar"clayer"))
(setvar "osmode" 0)
(setq p (getpoint"\nEnter the center:"))
(setq p1 (list (car p) (- (cadr p) 5)))
(setq p2 (list (- (car p) 5) (cadr p)))
(command "clayer" "0")
(command "circle" p 4.35)
(command "layer" "m" "螺纹" "c" "2" "" "lw" "0.13" "" "l" "Continuous" "" "")
(command "arc" "ce" p p1 p2)
(command "layer" "m" "中心线" "c" "1" "" "lw" "0.13" "" "l" "CENTER" "" "")
(setq pt1 (polar p pi 6.5))
(setq pt2 (polar p 0 6.5))
(setq pt3 (polar p (* pi 0.5) 6.5))
(setq pt4 (polar p (* pi 1.5) 6.5))
(entmake (list '(0 . "line")(cons 10 pt1)(cons 11 pt2)'(8 . "中心线")))
(entmake (list '(0 . "line")(cons 10 pt3)(cons 11 pt4)'(8 . "中心线")))
(setvar "osmode" 6071)
(setvar "clayer" la)
(princ)
)

669423907 发表于 2011-10-30 23:08:40

cabinsummer 发表于 2011-10-30 22:59 static/image/common/back.gif
使用方法:选择圆即可,可框选、点选、窗口选,无论多少自动加中心线。

中心线的程序已经有了(燕秀工具箱)

669423907 发表于 2011-10-30 23:10:15

cabinsummer 发表于 2011-10-30 23:08 static/image/common/back.gif


大师神速啊
页: [1] 2
查看完整版本: 在螺纹孔上加中心线(多谢cabinsummer 大师热情帮助)