明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: yjwht

[源码] 绣红旗

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

评分

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

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2025-2-25 19:04:50 | 显示全部楼层
本帖最后由 saint008 于 2025-2-26 09:00 编辑

好闪闪!敢叫日月换新天,学习了!
回复 支持 反对

使用道具 举报

发表于 2025-2-26 08:46:00 | 显示全部楼层
老铁6666666666666666666666
回复 支持 反对

使用道具 举报

发表于 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-26 10:58:51 | 显示全部楼层
ferious 发表于 2025-2-26 09:40
  • 改变 0图层  生成块  欢迎大佬指点提高
  • (defun c:wjx (/ v1 v2 v3 S1 ss1 x2 n ) ;绘制红旗
  •   ...

  • 已试,确实可以生成块
    回复 支持 反对

    使用道具 举报

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

    使用道具 举报

    发表于 2025-2-27 16:25:10 | 显示全部楼层
    谢谢
    有空时也学习一下
    回复 支持 反对

    使用道具 举报

    发表于 2025-2-28 16:58:32 | 显示全部楼层
    雖然用不到,只好贊
    回复 支持 反对

    使用道具 举报

     楼主| 发表于 2025-3-1 17:26:00 | 显示全部楼层
    ferious 发表于 2025-2-26 09:40
  • 改变 0图层  生成块  欢迎大佬指点提高
  • (defun c:wjx (/ v1 v2 v3 S1 ss1 x2 n ) ;绘制红旗
  •   ...

  • 一直在忙,终于抽出一点时间学习了一下ferious的代码。做一下学习笔记:
    1)原来不知道有这个chprop命令,用在这比我原来新建一个图层更合适,这里(entlast)作为选择对象确实是我想不到的
    (command "CHPROP" (entlast) ""  "LA" "0"   "c" "1"   "")
    2)生成选择集ss1的方法以后也可借用,很巧妙!getvar生成块名也挺好,但好像这样的块名有点长,也对,若不长点容易重复。_block、_insert没用过,这次学会了
    1. (setq s1 (entlast))
    2. (setq ss1 (ssadd))
    3.   (while (setq s1 (entnext s1))
    4.     (ssadd s1 ss1)
    5.     (princ (sslength ss1))
    6.   )
    7.   (setq x2  (strcat "DGWT-BLK-" (rtos (* (getvar "cdate") 1000000) 2 0)) )
    8.   (command "_block" x2 BB1 ss1 "")
    9.   (command "_insert" x2 BB1 "" "" "")



    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

    发表于 2025-3-1 21:07:17 | 显示全部楼层
    红旗应该要遵循黄金分割比例
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

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

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

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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