乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 84|回复: 9

[编程交流] 帮助着色圆形区域w

[复制链接]

17

主题

41

帖子

24

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2022-7-5 20:18:36 | 显示全部楼层 |阅读模式
我正在研制这种代码的灵丹妙药。com/node/186,但当我尝试运行以下命令时,圆形图案填充的半径会根据“ctr”变量与原点的距离而变化。我希望它完全取决于“ctr”和“edge”点。
 
  1. (defun c:test()(setvar "osmode" 0)
  2. (setq ctr (getpoint "\nCenter of Circle: "))
  3. (setq edge (getpoint "\nEdge of Circle: "))
  4. (entmakex (list
  5. (cons 0 "HATCH")
  6. (cons 100 "AcDbEntity")
  7. (cons 8 "E-GRND")
  8. (cons 100 "AcDbHatch")
  9. (cons 10 ctr)
  10. (cons 210 (list 0 0 1))
  11. (cons 2 "SOLID")
  12. (cons 70 1)
  13. (cons 71 0)
  14. (cons 91 1)
  15. (cons 92 1)
  16. (cons 93 1)
  17. (cons 72 3)                        ;the "3" designates this is an elliptical shape, 1 for circle
  18. (cons 10 ctr)                      ;center point of ellipse
  19. (cons 11 edge)                     ;point of top quad
  20. (cons 40 1)                        ;ratio of width to height
  21. (cons 50 0.0)                      ;start angle  
  22. (cons 51 (* pi 2.0))               ;end angle (full ellipse)
  23. (cons 73 1)                        ;counterclockwise flag
  24. (cons 97 0)      
  25. (cons 75 0)
  26. (cons 76 1)
  27. (cons 98 1)
  28. (cons 10 (list 0 0 0))
  29. ))
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:25:29 | 显示全部楼层
请尝试以下操作:
  1. ([color=BLUE]defun[/color] c:test ( [color=BLUE]/[/color] cen ocs rad )
  2.    ([color=BLUE]if[/color]
  3.        ([color=BLUE]and[/color]
  4.            ([color=BLUE]setq[/color] cen ([color=BLUE]getpoint[/color] [color=MAROON]"\nCenter: "[/color]))
  5.            ([color=BLUE]setq[/color] rad ([color=BLUE]getdist[/color] cen [color=MAROON]"\nRadius: "[/color]))
  6.            ([color=BLUE]setq[/color] ocs ([color=BLUE]trans[/color] '(0.0 0.0 1.0) 1 0 [color=BLUE]t[/color]))
  7.        )
  8.        ([color=BLUE]entmake[/color]
  9.            ([color=BLUE]list[/color]
  10.               '(000 . [color=MAROON]"HATCH"[/color])
  11.               '(100 . [color=MAROON]"AcDbEntity"[/color])
  12.               '(100 . [color=MAROON]"AcDbHatch"[/color])
  13.               '(010 0.0 0.0 0.0)
  14.                ([color=BLUE]cons[/color] 210 ocs)
  15.               '(002 . [color=MAROON]"SOLID"[/color])
  16.               '(070 . 1)
  17.               '(071 . 0)
  18.               '(091 . 1)
  19.               '(092 . 0)
  20.               '(093 . 1)
  21.               '(072 . 2)
  22.                ([color=BLUE]cons[/color] 010 ([color=BLUE]trans[/color] cen 1 ocs))
  23.                ([color=BLUE]cons[/color] 040 rad)
  24.               '(050 . 0.0)
  25.                ([color=BLUE]cons[/color] 051 ([color=BLUE]+[/color] [color=BLUE]pi[/color] [color=BLUE]pi[/color]))
  26.               '(073 . 1)
  27.               '(097 . 0)
  28.               '(075 . 0)
  29.               '(076 . 1)
  30.               '(098 . 1)
  31.                ([color=BLUE]cons[/color] 010 ([color=BLUE]trans[/color] cen 1 ocs))
  32.            )
  33.        )
  34.    )
  35.    ([color=BLUE]princ[/color])
  36. )

上述内容也应适用于所有UCS和视图。
回复

使用道具 举报

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 20:32:38 | 显示全部楼层
尝试此功能:
 
使用(pwipeout ctr rad 30)获取循环调用
 
  1. ;; Polygonal Wipeout  -  Lee Mac                                              ;
  2. ;; Creates an n-sided Polygonal Wipeout with the given center (UCS) & radius  ;
  3. ;;                                                                            ;
  4. ;; Modified by ymg                                                            ;
  5. (defun pwipeout ( cen rad n / ang inc lst )
  6.    (setq inc (/ pi n 0.5)
  7.          ang (* (/ pi 2) -1)
  8.    )
  9.    (repeat n
  10.        (setq lst (cons (list 14 (* 0.5 (cos ang)) (* 0.5 (sin ang))) lst)
  11.              ang (+ ang inc)
  12.        )
  13.    )
  14.    (entmakex
  15.        (append
  16.            (list
  17.                (cons 0 "WIPEOUT")
  18.                (cons 100 "AcDbEntity")
  19.                (cons 100 "AcDbWipeout")
  20.                (cons 10 (trans (mapcar '- cen (list rad rad)) 1 0))
  21.                (cons 11 (trans (list (+ rad rad) 0.0) 1 0 t))
  22.                (cons 12 (trans (list 0.0 (+ rad rad)) 1 0 t))
  23.                (cons 280 1)
  24.                (cons 71 2)
  25.         (cons 91 (1+ (length lst)))
  26.            )
  27.            (cons (last lst) lst)
  28.        )
  29.    )
  30. )
回复

使用道具 举报

17

主题

41

帖子

24

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2022-7-5 20:41:23 | 显示全部楼层
谢谢你们两个,我现在已经开始工作了!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:46:13 | 显示全部楼层
 
太棒了-不客气,普莱考斯基!
回复

使用道具 举报

8

主题

34

帖子

26

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 20:56:02 | 显示全部楼层
在Lee的测试程序thread post#2中,我需要画一个半圆(实心图案填充)。但我不能让它工作。
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 21:02:57 | 显示全部楼层
你好
  1. ...
  2. (cons 051 [color="red"](+ pi  pi )[/color])
  3. ...

替换为
  1. ...
  2. (cons 051 [color="red"]pi[/color] )
  3. ...

这一切都归功于李
 
这是另一个实心半圆
  1. (defun c:test (/ p r v)
  2. (setq v (getvar "osmode"))
  3. (if (and (setq p (getpoint "\nPick center: "))
  4.    (setq r (getdist [color="red"]p[/color] "\nRadius: ")))
  5.    (command "_pline" p "w" r r "arc" (mapcar '+ p (list 0. r 0.)))
  6.    ) ;_ end of if
  7. (if (= (getvar "cmdactive") 1)
  8.    (command)
  9.    ) ;_ end of if
  10. (setvar "osmode" v)
  11. (princ)
  12. ) ;_ end of defun
回复

使用道具 举报

8

主题

34

帖子

26

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 21:07:15 | 显示全部楼层
我搞不懂。现在,我把这件事搁置了3个月,偶尔还会再提。半圆需要一条不穿过中心点的平坦垂直边。
 
这就是我所做的,从一个类似的舱口开始。这没有任何意义。最低定义是什么?我还需要它的镜像,这是显而易见的吗?
 
  1. (entmake
  2.    '((0 . "hatch")(100 . "AcDbEntity")(8 . "0")(62 . 0)(6 . "ByBlock")
  3. (100 . "AcDbHatch")(10 0.0 0.0 0.0)(210 0.0 0.0 1.0)(2 . "SOLID")
  4. (70 . 1)(71 . 0)(91 . 1)(92 . 1)(93 . 4)
  5. (72 . 1)(10 3.8301 15.3204 0.0)(11 3.8301 4.55836 0.0)
  6. (72 . 2)(10 1.91505 9.97494 0.0)(40 . 5.74515)(50 . 5.05223)(51 . 1.23096)
  7. (73 . 1)(97 . 0)(75 . 0)(76 . 1)(98 . 1)(10 0.0 0.0 0.0)(450 . 0)(451 . 0)
  8. (460 . 0.0)(461 . 0.0)(452 . 0)(462 . 0.0)(453 . 0)(470 . "")))
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 21:16:54 | 显示全部楼层
请张贴一张显示预期结果的图纸。
回复

使用道具 举报

8

主题

34

帖子

26

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 21:20:14 | 显示全部楼层
我不知道该怎么做。这是一个尝试。这是一个受控电源插座符号。我需要一个两面都有阴影的,一个只有一面有阴影的。谢谢你的帮助,
211836dd6k9pfd16dlb66q.png
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 09:05 , Processed in 0.942920 second(s), 74 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表