明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1923|回复: 22

[源码] 绣红旗

  [复制链接]
发表于 2025-2-23 11:22:51 | 显示全部楼层 |阅读模式
很喜欢徐子尧版的《绣红旗》,用lisp编写了一段绣红旗代码,练习之作。还让豆包AI配诗一首,感觉还不错:


绣红旗志
铁窗难锁赤心昂,丝线穿针绣锦章。
五星闪耀红旗展,热血千秋映曙光。

  1. (defun c:yt_f6 (/ v1 v2 v3) ;绘制红旗
  2.   (setq v1 (getvar "osmode"))
  3.   (setq v2 (getvar "cmdecho"))
  4.   (setq v3 (getvar "blipmode"))
  5.   (setq BB1 (getpoint "\n 指定红旗一个角点:"))
  6.   (setq BB2 (getpoint BB1 "\n 指定红旗对角角点:"))
  7.   (setq B1 (mapcar 'min BB1 BB2))
  8.   (setq B2 (mapcar 'max BB1 BB2))
  9.   (setvar "osmode" 0)
  10.   (setvar "cmdecho" 0)
  11.   (setvar "blipmode" 0)
  12.   (setq i1 (min (/ (- (car B2) (car B1)) 30) (/ (- (cadr B2) (cadr B1)) 20)))
  13.   (setq B2 (polar (polar B1 0 (* 30 i1)) (/ pi 2) (* 20 i1)))
  14.   (command "layer" "m" "red_flag" "c" "1" """")
  15.   (command "rectang" B1 B2)
  16.   (setq A1 (polar (polar B1 0 (* 5 i1)) (/ pi 2) (* 15 i1)))
  17.   (setq A2 (polar (polar B1 0 (* 10 i1)) (/ pi 2) (* 18 i1)))
  18.   (setq A3 (polar (polar B1 0 (* 12 i1)) (/ pi 2) (* 16 i1)))
  19.   (setq A4 (polar (polar B1 0 (* 12 i1)) (/ pi 2) (* 13 i1)))
  20.   (setq A5 (polar (polar B1 0 (* 10 i1)) (/ pi 2) (* 11 i1)))
  21.   (command "layer" "m" "yellow_flag" "c" "2" """")
  22.   (setq  p1 (polar A1 (/ (* (+ (* 0 72) 90) pi) 180) (* 3.333 i1)))
  23.   (setq  p2 (polar A1 (/ (* (+ (* 1 72) 90) pi) 180) (* 3.333 i1)))
  24.   (setq  p3 (polar A1 (/ (* (+ (* 2 72) 90) pi) 180) (* 3.333 i1)))
  25.   (setq  p4 (polar A1 (/ (* (+ (* 3 72) 90) pi) 180) (* 3.333 i1)))
  26.   (setq  p5 (polar A1 (/ (* (+ (* 4 72) 90) pi) 180) (* 3.333 i1)))
  27.   (command "pline" p1 (polar p1 (angle p1 p3) (* (distance p1 p3) 0.382))
  28.       p2 (polar p2 (angle p2 p4) (* (distance p2 p4) 0.382))
  29.       p3 (polar p3 (angle p3 p5) (* (distance p3 p5) 0.382))
  30.       p4 (polar p4 (angle p4 p1) (* (distance p4 p1) 0.382))
  31.       p5 (polar p5 (angle p5 p2) (* (distance p5 p2) 0.382))
  32.       "c")
  33.   (command "-hatch" "p" "solid" A1 "")
  34.   (setq n 0)
  35.   (while (< n 4)
  36.   (setq A6 (nth n (list A2 A3 A4 A5)))
  37.     (setq  p1 (polar A6 (+ (/ (* 0 72 pi) 180) (angle A6 A1)) i1))
  38.     (setq  p2 (polar A6 (+ (/ (* 1 72 pi) 180) (angle A6 A1)) i1))
  39.     (setq  p3 (polar A6 (+ (/ (* 2 72 pi) 180) (angle A6 A1)) i1))
  40.     (setq  p4 (polar A6 (+ (/ (* 3 72 pi) 180) (angle A6 A1)) i1))
  41.     (setq  p5 (polar A6 (+ (/ (* 4 72 pi) 180) (angle A6 A1)) i1))
  42.     (command "pline" p1 (polar p1 (angle p1 p3) (* (distance p1 p3) 0.382))
  43.       p2 (polar p2 (angle p2 p4) (* (distance p2 p4) 0.382))
  44.       p3 (polar p3 (angle p3 p5) (* (distance p3 p5) 0.382))
  45.       p4 (polar p4 (angle p4 p1) (* (distance p4 p1) 0.382))
  46.       p5 (polar p5 (angle p5 p2) (* (distance p5 p2) 0.382))
  47.       "c")
  48.   (command "-hatch" "p" "solid" A6 "")
  49.   (setq n (1+ n)))
  50.   (command "layer" "m" "red_flag" "c" "1" """")
  51.   (command "-hatch" "p" "solid" (polar (polar B1 0 i1) (/ pi 2) i1) "")
  52.   (setvar "osmode" v1)
  53.   (setvar "cmdecho" v2)
  54.   (setvar "blipmode" v3)
  55.   (princ)
  56. )


本帖子中包含更多资源

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

x

点评

注意小五角星不一样大  发表于 2025-2-23 14:06

评分

参与人数 4明经币 +3 金钱 +10 收起 理由
tryhi + 1
baitang36 + 1 厉害了
tigcat + 10 很给力!
qazxswk + 1

查看全部评分

回复

使用道具 举报

发表于 2025-3-3 08:15:12 | 显示全部楼层
yjwht 发表于 2025-3-1 17:26
一直在忙,终于抽出一点时间学习了一下ferious的代码。做一下学习笔记:
1)原来不知道有这个chprop命令 ...

祝你一直进步   会当凌绝顶
回复 支持 1 反对 0

使用道具 举报

发表于 2025-2-27 09:38:12 | 显示全部楼层
又是一个刀迷啊..................
回复 支持 1 反对 0

使用道具 举报

发表于 2025-2-26 09:40:26 | 显示全部楼层
  • 改变 0图层  生成块  欢迎大佬指点提高
  • (defun c:wjx (/ v1 v2 v3 S1 ss1 x2 n ) ;绘制红旗
  •   (setq v1 (getvar "osmode"))
  •   (setq v2 (getvar "cmdecho"))
  •   (setq v3 (getvar "blipmode"))
  •   (setq BB1 (getpoint "\n 指定红旗一个角点:"))
  •   (setq BB2 (getpoint BB1 "\n 指定红旗对角角点:"))
  •   (setq B1 (mapcar 'min BB1 BB2))
  •   (setq B2 (mapcar 'max BB1 BB2))
  •   (setvar "osmode" 0)
  •   (setvar "cmdecho" 0)
  •   (setvar "blipmode" 0)
  •   (setq i1 (min (/ (- (car B2) (car B1)) 30) (/ (- (cadr B2) (cadr B1)) 20)))
  •   (setq B2 (polar (polar B1 0 (* 30 i1)) (/ pi 2) (* 20 i1)))
  •   
  •   (setq s1 (entlast));最后一个图元的图元名
  •   ;(command "layer" "m" "red_flag" "c" "1" """")
  •   (command "rectang" B1 B2)
  •   (command "CHPROP" (entlast) ""  "LA" "0"   "c" "1"   "")
  •   (setq A1 (polar (polar B1 0 (* 5 i1)) (/ pi 2) (* 15 i1)))
  •   (setq A2 (polar (polar B1 0 (* 10 i1)) (/ pi 2) (* 18 i1)))
  •   (setq A3 (polar (polar B1 0 (* 12 i1)) (/ pi 2) (* 16 i1)))
  •   (setq A4 (polar (polar B1 0 (* 12 i1)) (/ pi 2) (* 13 i1)))
  •   (setq A5 (polar (polar B1 0 (* 10 i1)) (/ pi 2) (* 11 i1)))
  •   ;(command "layer" "m" "yellow_flag" "c" "2" """")
  •   (setq  p1 (polar A1 (/ (* (+ (* 0 72) 90) pi) 180) (* 3.333 i1)))
  •   (setq  p2 (polar A1 (/ (* (+ (* 1 72) 90) pi) 180) (* 3.333 i1)))
  •   (setq  p3 (polar A1 (/ (* (+ (* 2 72) 90) pi) 180) (* 3.333 i1)))
  •   (setq  p4 (polar A1 (/ (* (+ (* 3 72) 90) pi) 180) (* 3.333 i1)))
  •   (setq  p5 (polar A1 (/ (* (+ (* 4 72) 90) pi) 180) (* 3.333 i1)))
  •   (command "pline" p1 (polar p1 (angle p1 p3) (* (distance p1 p3) 0.382))
  •     p2 (polar p2 (angle p2 p4) (* (distance p2 p4) 0.382))
  •     p3 (polar p3 (angle p3 p5) (* (distance p3 p5) 0.382))
  •     p4 (polar p4 (angle p4 p1) (* (distance p4 p1) 0.382))
  •     p5 (polar p5 (angle p5 p2) (* (distance p5 p2) 0.382))
  •     "c")
  •   (command "CHPROP" (entlast) ""  "LA" "0"   "c" "2"   "")
  •   (command "-hatch" "p" "solid" A1 "")
  •   (command "CHPROP" (entlast) ""  "LA" "0"   "c" "2"   "")
  •   (setq n 0)
  •   (while (< n 4)
  •     (setq A6 (nth n (list A2 A3 A4 A5)))
  •     (setq  p1 (polar A6 (+ (/ (* 0 72 pi) 180) (angle A6 A1)) i1))
  •     (setq  p2 (polar A6 (+ (/ (* 1 72 pi) 180) (angle A6 A1)) i1))
  •     (setq  p3 (polar A6 (+ (/ (* 2 72 pi) 180) (angle A6 A1)) i1))
  •     (setq  p4 (polar A6 (+ (/ (* 3 72 pi) 180) (angle A6 A1)) i1))
  •     (setq  p5 (polar A6 (+ (/ (* 4 72 pi) 180) (angle A6 A1)) i1))
  •     (command "pline" p1 (polar p1 (angle p1 p3) (* (distance p1 p3) 0.382))
  •       p2 (polar p2 (angle p2 p4) (* (distance p2 p4) 0.382))
  •       p3 (polar p3 (angle p3 p5) (* (distance p3 p5) 0.382))
  •       p4 (polar p4 (angle p4 p1) (* (distance p4 p1) 0.382))
  •       p5 (polar p5 (angle p5 p2) (* (distance p5 p2) 0.382))
  •       "c")
  •     (command "-hatch" "p" "solid" A6 "")
  •     (command "CHPROP" (entlast) ""  "LA" "0"   "c" "2"   "")
  •     (setq n (1+ n)))
  •   
  •   (command "-hatch" "p" "solid" (polar (polar B1 0 i1) (/ pi 2) i1) "")
  •   (command "CHPROP" (entlast) ""  "LA" "0"   "c" "1"   "")
  •   
  •   (setq ss1 (ssadd))  ;ss1为自S1后生成的图元选择集
  •   
  •   (while (setq s1 (entnext s1))
  •     (ssadd s1 ss1)
  •     (princ (sslength ss1))
  •   )
  •   
  •   (setq      x2  (strcat "DGWT-BLK-" (rtos (* (getvar "cdate") 1000000) 2 0)) )
  •   (command "_block" x2 BB1 ss1 "")
  •   (command "_insert" x2 BB1 "" "" "")
  •   
  •   (command "CHPROP" (entlast) ""  "LA" "0"     "")
  •   
  •   (setvar "osmode" v1)
  •   (setvar "cmdecho" v2)
  •   (setvar "blipmode" v3)
  •   (princ)
  • )

回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2025-2-24 15:26:10 | 显示全部楼层
@baitang36 目前我还没有权限加好友
感谢大家,我会继续努力,多发好作品!

评分

参与人数 1明经币 +1 收起 理由
baitang36 + 1 等你成长

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2025-2-23 15:35:22 | 显示全部楼层



同样喜欢玩的路过。
这是我以前用dynamo做的。

本帖子中包含更多资源

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

x
回复 支持 1 反对 0

使用道具 举报

发表于 2025-2-23 11:37:32 | 显示全部楼层
不错,支持一下。
回复 支持 反对

使用道具 举报

发表于 2025-2-23 13:30:46 | 显示全部楼层
不错,支持一下
回复 支持 反对

使用道具 举报

发表于 2025-2-23 14:17:40 | 显示全部楼层
虽然用不到,不得不赞
回复 支持 反对

使用道具 举报

发表于 2025-2-23 17:57:31 | 显示全部楼层
很好→很棒!很好~很棒!!很好……很棒!!!
回复 支持 反对

使用道具 举报

发表于 2025-2-24 08:46:58 | 显示全部楼层
四个小星星大小不一。
回复 支持 反对

使用道具 举报

发表于 2025-2-24 09:13:50 | 显示全部楼层
很好玩的一个程序
回复 支持 反对

使用道具 举报

发表于 2025-2-24 09:14:32 | 显示全部楼层
不错,支持一下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-2-24 09:57:04 | 显示全部楼层
liweitung 发表于 2025-2-24 08:46
四个小星星大小不一。

大小相同,是角度不一
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-2 18:42 , Processed in 0.227064 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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