yjwht 发表于 2025-2-24 15:26:10

@baitang36 目前我还没有权限加好友:handshake
感谢大家,我会继续努力,多发好作品!

saint008 发表于 2025-2-25 19:04:50

本帖最后由 saint008 于 2025-2-26 09:00 编辑

好闪闪!:lol敢叫日月换新天,学习了!

ferious 发表于 2025-2-26 08:46:00

老铁6666666666666666666666

ferious 发表于 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" """")
[*](setqp1 (polar A1 (/ (* (+ (* 0 72) 90) pi) 180) (* 3.333 i1)))
[*](setqp2 (polar A1 (/ (* (+ (* 1 72) 90) pi) 180) (* 3.333 i1)))
[*](setqp3 (polar A1 (/ (* (+ (* 2 72) 90) pi) 180) (* 3.333 i1)))
[*](setqp4 (polar A1 (/ (* (+ (* 3 72) 90) pi) 180) (* 3.333 i1)))
[*](setqp5 (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)))
[*]    (setqp1 (polar A6 (+ (/ (* 0 72 pi) 180) (angle A6 A1)) i1))
[*]    (setqp2 (polar A6 (+ (/ (* 1 72 pi) 180) (angle A6 A1)) i1))
[*]    (setqp3 (polar A6 (+ (/ (* 2 72 pi) 180) (angle A6 A1)) i1))
[*]    (setqp4 (polar A6 (+ (/ (* 3 72 pi) 180) (angle A6 A1)) i1))
[*]    (setqp5 (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)
[*])

yjwht 发表于 2025-2-26 10:58:51

ferious 发表于 2025-2-26 09:40
[*]改变 0图层生成块欢迎大佬指点提高
[*](defun c:wjx (/ v1 v2 v3 S1 ss1 x2 n ) ;绘制红旗
[*]...

已试,确实可以生成块

linzaijie 发表于 2025-2-27 09:38:12

又是一个刀迷啊..................

ynhh 发表于 2025-2-27 16:25:10

谢谢
有空时也学习一下

白色微風1991 发表于 2025-2-28 16:58:32

雖然用不到,只好贊

yjwht 发表于 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没用过,这次学会了
(setq s1 (entlast))
(setq ss1 (ssadd))
(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 "" "" "")


Dallas_whu 发表于 2025-3-1 21:07:17

红旗应该要遵循黄金分割比例
页: 1 [2] 3
查看完整版本: 绣红旗