明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 980|回复: 18

[讨论] 横竖腰孔lisp程序

[复制链接]
发表于 2025-1-4 23:07:19 | 显示全部楼层 |阅读模式
本帖最后由 指尖 于 2025-1-5 19:30 编辑

竖腰孔起始点为第1点如图,一次为第2、3、4点,5点与第1点重合。横腰孔与竖腰孔                                                                                             类似



###########################################【横腰孔】
(setq new-ent (list (cons 0 "LWPOLYLINE") (cons 100  "AcDbEntity")(cons 100 "AcDbPolyline") (cons 90 5)
                                                                  (list 10 0 0 ) (cons 40 0.0 ) (cons 41 0.0 ) (cons 42 0.0 ) (cons 91 0.0 )
                                                                  (list 10 100 0 ) (cons 40 0.0 ) (cons 41 0.0 ) (cons 42 1.0 ) (cons 91 0.0 )
                                                                  (list 10 100 100 ) (cons 40 0.0 ) (cons 41 0.0 ) (cons 42 0.0 ) (cons 91 0.0 )
                                                                  (list 10 0 100 ) (cons 40 0.0 ) (cons 41 0.0 ) (cons 42 1.0 ) (cons 91 0.0 )
                                                                  (list 10 0 0) (cons 40 0.0 ) (cons 41 0.0 ) (cons 42 0.0 ) (cons 91 0.0 ))
                    

               
)
(entmake new-ent)


###########################################【竖腰孔】
(setq new-ent (list (cons 0 "LWPOLYLINE") (cons 100  "AcDbEntity")(cons 100 "AcDbPolyline") (cons 90 5)
                                                                  (list 10 0 0 ) (cons 40 0.0 ) (cons 41 0.0 ) (cons 42 1.0 ) (cons 91 0.0 )
                                                                  (list 10 100 0 ) (cons 40 0.0 ) (cons 41 0.0 ) (cons 42 0.0 ) (cons 91 0.0 )
                                                                  (list 10 100 100 ) (cons 40 0.0 ) (cons 41 0.0 ) (cons 42 1.0 ) (cons 91 0.0 )
                                                                  (list 10 0 100 ) (cons 40 0.0 ) (cons 41 0.0 ) (cons 42 0.0 ) (cons 91 0.0 )
                                                                  (list 10 0 0) (cons 40 0.0 ) (cons 41 0.0 ) (cons 42 0.0 ) (cons 91 0.0 ))
                    

               
)
(entmake new-ent)


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 2025-1-6 13:03:46 | 显示全部楼层
;; 对话框版本


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 1 反对 0

使用道具 举报

发表于 2025-1-5 19:25:09 | 显示全部楼层
本帖最后由 尘缘一生 于 2025-1-5 20:51 编辑



三领是这么作的,至于那个方向,实际不用开发的,难道谁画图,方向不定吗?任何方向,角度的都必须一定!不留后患!
这个玩意,对于我这搞建筑设计的,有时候钢构用一下子,早做好了,20年前就存在。
  1. ;;SLdesign 三领设计 V3.0 by 尘缘一生 QQ:15290049
  2. ;;椭圆孔-------------
  3. (defun c:slot (/ osmo w d ang p1 p2 cp1 cp2 cp3 cp4 cp5 cp6 str p0)
  4.   (setq osmo (getvar "OSMODE"))
  5.   (setvar "OSMODE" 16383) ;;捕捉全部打开
  6.   (setq p0 (getpoint (slmsg "\n 输入长圆孔中心点:" "\n 块蛾ふいみ翴:" "\n Enter center point of the oblong hole:")))
  7.   (setvar "OSMODE" osmo)
  8.   (setq ang (4dire p0))
  9.   (setq d (/ (* 0.5 (atof (inputbox-1
  10.                             (slmsg "长圆孔长轴距离" "蛾ふ禸禯瞒" "Long axis distance of elongated hole")
  11.                             (slmsg "距离=" "禯瞒=" "Distance=") "50" "15"
  12.                           )
  13.                     )
  14.              ) (getvar "DIMLFAC")
  15.           )
  16.   )
  17.   (setq p1 (polar p0 (+ ang pi) d) p2 (polar p0 ang d))
  18.   (setq w (/ (* 0.5 (atof (inputbox-1
  19.                             (slmsg "长圆孔短轴距离" "蛾ふ祏禸禯瞒" "Distance between long circular hole and short axis")
  20.                             (slmsg "距离=" "禯瞒=" "Distance=") "30" "15"
  21.                           )
  22.                     )
  23.              ) (getvar "DIMLFAC")
  24.           )
  25.   )
  26.   (cykong p1 p2 w)
  27.   ;(setq w (/ (* 5. w) 3.))
  28.   ;(setq cp1 (polar p1 (+ ang pi2) w)
  29.   ;  cp2 (polar p1 (+ ang 3pi2) w)
  30.   ;  cp3 (polar p2 (+ ang pi2) w)
  31.   ;  cp4 (polar p2 (+ ang 3pi2) w)
  32.   ;  cp5 (polar p1 (+ ang pi) w)
  33.   ;  cp6 (polar p2 ang w)
  34.   ;  str (slmsg "中心线" "いみ絬" "Centerline")
  35.   ;);求得长圆孔中心轴线的六个关键点
  36.   ;;绘制长圆孔中心线------
  37.   ;(fy_lineformat (makeline cp1 cp2) str "CENTER" 0.4 6)
  38.   ;(fy_lineformat (makeline cp3 cp4) str "CENTER" 0.4 6)
  39.   ;(fy_lineformat (makeline cp5 cp6) str "CENTER" 0.4 6)
  40. )
  41. ;;画长圆孔---(一级)------
  42. ;bp1,长轴短点1,长轴短点2  W 半个短轴
  43. (defun cykong (bp1 bp2 w / ang p1 p2 p3 p4)
  44.   (setq
  45.     ang (angle bp1 bp2)
  46.     p1 (polar bp1 (+ ang pi2) w)
  47.     p2 (polar bp1 (+ ang 3pi2) w)
  48.     p3 (polar bp2 (+ ang pi2) w)
  49.     p4 (polar bp2 (+ ang 3pi2) w)
  50.   )
  51.   (entmake
  52.     (list
  53.       (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 100 "AcDbPolyline") (cons 90 5) (cons 70 1)
  54.       (cons 10 p2) (cons 42 0.0)
  55.       (cons 10 p4) (cons 42 1.0)
  56.       (cons 10 p3) (cons 42 0.0)
  57.       (cons 10 p1) (cons 42 1.0)
  58.       (cons 10 p2) (cons 42 1.0)
  59.     )
  60.   )
  61. )
不要看代码不运行的部分,只看原理,我在本坛,从来不取代码,因为,任何流出来的代码,也不是我想要的结果,你自己得加工最好的那一个。
所以,三领的内码,你休想是原装的能入三领进来,绝不可能!




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2025-1-4 23:29:49 | 显示全部楼层
新手小白,希望和大家共同进步!!!
回复 支持 反对

使用道具 举报

发表于 2025-1-4 23:50:42 | 显示全部楼层
  1. ;;【横腰孔】
  2. (setq new-ent '((0 . "LWPOLYLINE")(100 . "AcDbEntity")(100 . "AcDbPolyline")(90 . 5)(10 0 0)(10 100 0)(42 . 1.0)(10 100 100)(10 0 100)(42 . 1.0)(10 0 0)))
  3. (entmakex new-ent)

  4. ;;【竖腰孔】
  5. (setq new-ent '((0 . "LWPOLYLINE")(100 . "AcDbEntity")(100 . "AcDbPolyline")(90 . 5)(10 0 0)(42 . 1.0)(10 100 0)(10 100 100)(42 . 1.0)(10 0 100)(10 0 0)))
  6. (entmakex new-ent)
回复 支持 反对

使用道具 举报

发表于 2025-1-5 10:39:57 | 显示全部楼层

感谢院长,昨天好不容捣鼓出来,今天九看到了,简洁实用

点评

固定参数的其实没啥意义  发表于 2025-1-5 11:20
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-5 12:46:18 | 显示全部楼层

好像更加简洁,赞
回复 支持 反对

使用道具 举报

发表于 2025-1-5 17:27:40 | 显示全部楼层
本帖最后由 xyp1964 于 2025-1-5 17:46 编辑

  1. ;; 函数方式

  2. (defun yk-h (w h)
  3.   "yk-h 横腰孔 (yk-h w矩形宽度 h矩形高度)"
  4.   "(yk-h 200 100)"
  5.   (entmakex (list '(0 . "LWPOLYLINE")
  6.                   '(100 . "AcDbEntity")
  7.                   '(100 . "AcDbPolyline")
  8.                   '(90 . 4)
  9.                   '(70 . 1)
  10.                   '(10 0 0)
  11.                   (list 10 w 0)
  12.                   '(42 . 1)
  13.                   (list 10 w h)
  14.                   (list 10 0 h)
  15.                   '(42 . 1)
  16.             )
  17.   )
  18. )
  19. (defun yk-v (w h)
  20.   "yk-v 竖腰孔 (yk-v w矩形宽度 h矩形高度)"
  21.   "(yk-v 100 200)"
  22.   (entmakex (list '(0 . "LWPOLYLINE")
  23.                   '(100 . "AcDbEntity")
  24.                   '(100 . "AcDbPolyline")
  25.                   '(90 . 4)
  26.                   '(70 . 1)
  27.                   '(10 0 0)
  28.                   '(42 . 1)
  29.                   (list 10 w 0)
  30.                   (list 10 w h)
  31.                   '(42 . 1)
  32.                   (list 10 0 h)
  33.             )
  34.   )
  35. )
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-5 19:23:07 | 显示全部楼层

没太明白,怎么给矩形取值呢??

点评

(yk-v 100 200)  发表于 2025-1-5 21:16
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-5 19:35:32 | 显示全部楼层
尘缘一生 发表于 2025-1-5 19:25
三领是这么作的,至于那个方向,实际不用开发的,难道谁画图,方向不定吗?任何方向,角度的都必须一定 ...

原来早就有这个功能的程序,受教了
回复 支持 反对

使用道具 举报

发表于 2025-1-5 19:51:23 | 显示全部楼层
很厉害,感谢分享!
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-1-22 17:47 , Processed in 0.219755 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表