明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 341|回复: 7

【entmake】生成圆形透明填充

[复制链接]
发表于 3 天前 | 显示全部楼层 |阅读模式
本帖最后由 kucha007 于 2025-2-1 13:40 编辑

参考资料:

https://www.cadtutor.net/forum/topic/69742-entmake-of-a-circular-hatch/

http://www.theswamp.org/index.php?topic=50238.msg553917#msg553917

  1. (entmakeX
  2.   (list
  3.     (cons 0 "HATCH")
  4.     (cons 100 "AcDbEntity")
  5.     (cons 8 "0");图层
  6.     (cons 62 0);颜色随块
  7.     (cons 440  (+ (lsh 2 24) (fix (- 255 (* 80 2.55)))));80%透明度
  8.     (cons 100 "AcDbHatch")
  9.     (cons 10 '(0.0 0.0 0.0))
  10.     (cons 210 '(0.0 0.0 1.0))
  11.     (cons 2 "SOLID");图案名
  12.     (cons 70 1);实体填充1;图案填充0
  13.     (cons 71 0);关联1;无关联0
  14.     (cons 91 1);边界路径(环)数
  15.       (cons 92 1);边界路径类型:1外部
  16.       (cons 93 1);边数
  17.       (cons 72 2);边类型:2圆弧
  18.       (cons 10 '(0.0 0.0 0.0));圆心
  19.       (cons 40 1.0);半径
  20.       (cons 50 0.0);起点角度
  21.       (cons 51 (* 2 pi));端点角度
  22.       (cons 73 1);逆时针标志
  23.       (cons 97 0);源边界对象数
  24.     (cons 75 2);填充样式:2填充整个区域
  25.     (cons 76 1);图案类型:1预定义
  26.     (cons 98 1);种子点数
  27.     (cons 10 '(0.0 0.0 0.0))
  28.   )
  29. )



评分

参与人数 1明经币 +1 收起 理由
hubeiwdlue + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 前天 12:03 | 显示全部楼层
本帖最后由 kucha007 于 2025-2-1 12:05 编辑
尘缘一生 发表于 2025-2-1 09:25
我给大家提供另一个做法:SLdesign  V3.0  三领设计的。
对于透明的话,我没有想到用到什么样的图纸上,没 ...

感谢分享。我用entmake主要是为了编块,我补个例子吧

  1. (progn
  2.   (entmake (list '(0 . "Block") (cons 2 "1-HMkPT") '(70 . 0) (cons 10 '(0.0 0.0 0.0))))
  3.     (entmake (list '(0 . "CIRCLE") (cons 8 "0") (cons 10 '(0.0 0.0 0.0)) (cons 40 1.0)))
  4.     (entmake
  5.       (list
  6.         (cons 0 "HATCH")
  7.         (cons 100 "AcDbEntity")
  8.         (cons 8 "0");图层
  9.         (cons 62 0);颜色随块
  10.         (cons 440  (+ (lsh 2 24) (fix (- 255 (* 80 2.55)))));80%透明度
  11.         (cons 100 "AcDbHatch")
  12.         (cons 10 '(0.0 0.0 0.0))
  13.         (cons 210 '(0.0 0.0 1.0))
  14.         (cons 2 "SOLID");图案名
  15.         (cons 70 1);实体填充1;图案填充0
  16.         (cons 71 0);关联1;无关联0
  17.         (cons 91 1);边界路径(环)数
  18.           (cons 92 1);边界路径类型:1外部
  19.           (cons 93 1);边数
  20.           (cons 72 2);边类型:2圆弧
  21.           (cons 10 '(0.0 0.0 0.0));圆心
  22.           (cons 40 1.0);半径
  23.           (cons 50 0.0);起点角度
  24.           (cons 51 (* 2 pi));端点角度
  25.           (cons 73 1);逆时针标志
  26.           (cons 97 0);源边界对象数
  27.         (cons 75 2);填充样式:2填充整个区域
  28.         (cons 76 1);图案类型:1预定义
  29.         (cons 98 1);种子点数
  30.         (cons 10 '(0.0 0.0 0.0))
  31.       )
  32.     )
  33.   (entmake '((0 . "ENDBLK")))
  34. );创建块


  1. (entmakeX (list '(0 . "INSERT") (cons 8 "0")(cons 2 "1-HMkPT") (cons 10 '(0.0 0.0 0.0))));插入块

回复 支持 反对

使用道具 举报

 楼主| 发表于 前天 00:16 | 显示全部楼层
此贴生成的填充有4个控制点,可以方便调整
回复 支持 反对

使用道具 举报

发表于 前天 09:25 | 显示全部楼层
本帖最后由 尘缘一生 于 2025-2-1 10:04 编辑

我给大家提供另一个做法:SLdesign  V3.0  三领设计的。
对于透明的话,我没有想到用到什么样的图纸上,没作。


说明:如果我们作圆形填充,就应该作这4+1个穴点的,否则,你其他的集成就会有问题。比如:可能的包容盒(当取点位计算最小凸包时),中心线等。
         常用图:比如结构图纸的钢筋点。

很遗憾:众多其他二开觉得很不错,其实不然,我就见过不少的,对画实心点,没有4+1个穴点,比如:有的还是用带宽度的的多段线模拟来的。这考虑不周的BUG问题,在"三领设计"是绝对不存在。
  • ;;填充点函数---(一级)------
  • ;(sl:gangjind 基点 半径  图层nil 角度nil 比例mil 颜色nil)
  • ;;返回实体名
  • ;;SLdesign V3.0 By三领设计 尘缘一生 QQ:15290049
  • (defun sl:gangjind (p0 d tcl tcj tcb tcc / ms nam ha obj)
  •   (if (= 1 (vlax-get-Property *AcDocument* 'ActiveSpace)) ;模型1,布局0
  •     (setq ms *Model-Space*)
  •     (setq ms *Paper-Space*)
  •   )
  •   (entmake (list '(0 . "CIRCLE") (cons 10 p0) (cons 40 d)))
  •   (setq nam (entlast))
  •   (setq ha (vla-addhatch ms acHatchPatternTypePredefined "SOLID" :vlax-false))
  •   (vla-appendouterloop ha (vlax-safearray-fill (vlax-make-safearray vlax-vbobject '(0 . 0)) (list (en2obj nam))))
  •   (vla-evaluate ha)
  •   (entdel nam)
  •   (setq obj (en2obj (entlast)))
  •   (if tcb (vlax-put obj 'PatternScale tcb))
  •   (if tcj (vlax-put obj 'PatternAngle tcj))
  •   (if tcl (vla-put-layer obj tcl))
  •   (if tcc (vla-put-color obj tcc))
  •   (entlast)
  • )

下面是三领的两个命令:

;slbl 是三领的比例常量,至于SLMSG函数,只不过是支持多语言的个事,提示问题,改了就完了。
  • ;;绘制钢筋点------------
  • ;;SLdesign V3.0 By三领设计 尘缘一生 QQ:15290049
  • (defun c:gangjind (/ p0)
  •   (princ (slmsg "\n 右键重复:" "\n 龄確:" "\n Right click to repeat:"))
  •   (setq p0 (cadr (grread 5)))
  •   (sl:gangjind p0 (* 0.5 slbl) (slmsg "钢筋" "葵惮" "steelbar") nil nil 1)
  •   (command "MOVE" (entlast) "" "non" p0 pause)
  •   (princ)
  • )
  • ;;填充圆--------------
  • ;;SLdesign V3.0 By三领设计 尘缘一生 QQ:15290049
  • (defun c:tcyx (/ p0 p1)
  •   (setq p0 (getpoint (slmsg " \n 圆心:" " \n 蛾み:" " \n center of a circle:")))
  •   (setq p1 (getpoint p0 (slmsg "\n 半径:" "\n 畖:" "\n radius:")))
  •   (sl:gangjind p0 (distance p0 p1) nil nil nil nil)
  •   (command "MOVE" (entlast) "" "non" p0 pause)
  •   (princ)
  • )

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 前天 17:22 | 显示全部楼层
本帖最后由 bai2000 于 2025-2-1 20:05 编辑

新年大家好,都辛苦了一年,运行程序出现:Error: 参数类型错误: numberp: "1"
回复 支持 反对

使用道具 举报

发表于 前天 19:28 来自手机 | 显示全部楼层
谢谢分享,这个画钢筋的点筋很好。
回复 支持 反对

使用道具 举报

 楼主| 发表于 前天 21:34 | 显示全部楼层
hubeiwdlue 发表于 2025-2-1 19:28
谢谢分享,这个画钢筋的点筋很好。

如果是点筋,应该还需要考虑填充关联的问题。不过点筋一般都是用DO画实心环吧
回复 支持 反对

使用道具 举报

发表于 前天 21:42 | 显示全部楼层
kucha007 发表于 2025-2-1 21:34
如果是点筋,应该还需要考虑填充关联的问题。不过点筋一般都是用DO画实心环吧

是的,但是实心环捕捉不到圆上下左右四个边点,修改配筋图的时候,会带来一些不便。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-3 19:03 , Processed in 0.166389 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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