乐筑天下

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

[编程交流] 查看方向(帮助)

[复制链接]

26

主题

145

帖子

122

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 23:05:42 | 显示全部楼层
 
谢谢,我做了属性块了。但没有插入任何图形。
回复

使用道具 举报

26

主题

145

帖子

122

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 23:08:28 | 显示全部楼层
 
您好,可以用这段代码画箭头弧吗?是李的。由edata修改。
 
 
  1. ;; Arc to Bulge  -  Lee Mac
  2. ;; c     - center
  3. ;; a1,a2 - start, end angle
  4. ;; r     - radius
  5. ;; Returns: (<vertex> <bulge> <vertex>)
  6. (defun LM:Arc->Bulge ( c a1 a2 r )
  7.    (list
  8.        (polar c a1 r)
  9.        (   (lambda ( a ) (/ (sin a) (cos a)))
  10.            (/ (rem (+ pi pi (- a2 a1)) (+ pi pi)) 4.0)
  11.        )
  12.        (polar c a2 r)
  13.    )
  14. )
  15. ;;(sk_mk_arc01 pt r ang1 ang2 l_lay l_col l_lt l_lts l_lw)
  16. (defun sk_mk_arc01(pt r ang1 ang2 l_lay l_col l_lt l_lts l_lw)
  17. (if(and pt r ang1 ang2)
  18.    (entmakex (list '(0 . "ARC")
  19.                    (cons 8 (if l_lay l_lay (getvar 'clayer)))
  20.                    (if l_col (cons 62 l_col)(cons 62 256))
  21.                    (if l_lt (cons 6 l_lt)(cons 6 "bylayer"))
  22.                    (cons 48 (if l_lts l_lts (getvar 'celtscale)))
  23.                    (if l_lw (cons 370 l_lw)(cons 370 0))
  24.                    (cons 10 pt)
  25.                    (cons 40 r)
  26.                    (cons 50 ang1)
  27.                    (cons 51 ang2)
  28.                    )
  29.                  )
  30.    )
  31. )
  32. (vl-load-com)
  33. (defun c:tt(/  ANG1 ARC_LEN EN L OBJ P1 P2 PT R W ANG2 BULGE P3)
  34. (if(and (setq r(getdist "\nRadius:"));; Radius = text height
  35.          (setq pt(getpoint "\nCenter:"));;Placement point
  36.          )
  37.    (progn
  38.      (setq l(* 0.5 r))
  39.      (setq w(/ l 3.0))
  40.      (setq en(sk_mk_arc01 pt r 0 pi nil nil nil nil nil))
  41.      (setq obj(vlax-ename->vla-object en))
  42.      (setq arc_len(vla-get-arclength obj))
  43.      (setq p1(vlax-curve-getstartpoint obj))
  44.      (setq p2(vlax-curve-getPointAtDist obj (- arc_len l)))
  45.      (setq p3(vlax-curve-getEndpoint obj))      
  46.      (setq ang1(angle pt p2 ))
  47.      (setq ang2 0)
  48.      (setq bulge(cadr(LM:Arc->Bulge pt ang2 ang1 r)))
  49.      (vla-delete obj)      
  50.      (entmakex (list '(0 . "LWPOLYLINE")
  51.                      '(100 . "AcDbEntity")
  52.                      '(100 . "AcDbPolyline")
  53.                      (cons 90 3)
  54.                      (cons 10 p1)
  55.                      (cons 42 bulge)
  56.                      (cons 10 p2)
  57.                      (cons 40 w)
  58.                      (cons 41 0)                     
  59.                      (cons 10 p3)))
  60.      )
  61.    )
  62. (princ)
  63. )
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 23:11:58 | 显示全部楼层
也许你没有完全理解这个概念?
我告诉过你制作attrib块不需要代码。
1.使用命令绘制圆弧:arc
2.draw arrow命令:DIMARC
将其分解,然后移除一侧箭头
3.make 2 attrib Tag,对齐
4.将图纸另存为CW。dwg或ACW。图纸
5.放入有效的支持文件夹
然后加载lisp,运行。
 
正如大家所见,李的代码绘制弧已经有这么长的代码,我还是光年才能达到他的水平
这就是为什么我的概念很简单,只需插入attrib块
 
我的代码仍然有bug,但我很快就会修复。
回复

使用道具 举报

26

主题

145

帖子

122

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 23:14:39 | 显示全部楼层
 
您好,谢谢您的回复!李的代码已经修改,只输入“Radius”和 选择“插入点”,半径=文字高度。
回复

使用道具 举报

26

主题

145

帖子

122

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 23:17:17 | 显示全部楼层
 
嗨,hanhphuc, 这更完美,可以选择edata修改的箭头方向(左或右)(@mjtd.com)
 
  1. ;; Arc to Bulge  -  Lee Mac
  2. ;; c     - center
  3. ;; a1,a2 - start, end angle
  4. ;; r     - radius
  5. ;; Returns: (<vertex> <bulge> <vertex>)
  6. (defun LM:Arc->Bulge ( c a1 a2 r )
  7.    (list
  8.        (polar c a1 r)
  9.        (   (lambda ( a ) (/ (sin a) (cos a)))
  10.            (/ (rem (+ pi pi (- a2 a1)) (+ pi pi)) 4.0)
  11.        )
  12.        (polar c a2 r)
  13.    )
  14. )
  15. ;;(sk_mk_arc01 pt r ang1 ang2 l_lay l_col l_lt l_lts l_lw)
  16. (defun sk_mk_arc01(pt r ang1 ang2 l_lay l_col l_lt l_lts l_lw )
  17. (if(and pt r ang1 ang2)
  18.    (entmakex (list '(0 . "ARC")
  19.                    (cons 8 (if l_lay l_lay (getvar 'clayer)))
  20.                    (if l_col (cons 62 l_col)(cons 62 256))
  21.                    (if l_lt (cons 6 l_lt)(cons 6 "bylayer"))
  22.                    (cons 48 (if l_lts l_lts (getvar 'celtscale)))
  23.                    (if l_lw (cons 370 l_lw)(cons 370 0))
  24.                    (cons 10 pt)
  25.                    (cons 40 r)
  26.                    (cons 50 ang1)
  27.                    (cons 51 ang2)
  28.                    )
  29.                  )
  30.    )
  31. )
  32. (defun c:tt(/  ANG1 ARC_LEN EN L OBJ P1 P2 PT R W ANG2 BULGE P3 keys)
  33. (or *sk_rad_jt001* (setq *sk_rad_jt001* 10.0))
  34. (setq *sk_rad_jt001*(cond((getdist (strcat "\nRadius<" (rtos *sk_rad_jt001* 2 4) ">:")))(*sk_rad_jt001*)))
  35. (princ (strcat "\rCurrent Radius<" (rtos *sk_rad_jt001* 2 4) ">:"))
  36. (if(setq pt(getpoint "\nCenter:"))
  37.    (progn
  38.      (setq r *sk_rad_jt001*)
  39.      (initget "L R _l r")      
  40.      (setq keys(cond((getkword "\rDirection of arrow[L/R]<L>: "))("l")))
  41.      (setq l(* 0.5 r))
  42.      (setq w(/ l 3.0))
  43.      (setq en(sk_mk_arc01 pt r 0 pi nil nil nil nil nil))
  44.      (setq obj(vlax-ename->vla-object en))
  45.      (setq arc_len(vla-get-arclength obj))
  46.      (setq p1(if (= keys "l") (vlax-curve-getstartpoint obj) (vlax-curve-getEndpoint obj)))
  47.      (setq p2(vlax-curve-getPointAtDist obj (if (= keys "l") (- arc_len l) l)))
  48.      (setq p3(if (= keys "l") (vlax-curve-getEndpoint obj)(vlax-curve-getstartpoint obj) ))      
  49.      (setq ang1(angle pt p2 ))
  50.      (setq ang2 (if (= keys "l") 0 pi ))
  51.      (setq bulge(cadr(LM:Arc->Bulge pt (if (= keys "l") ang2 ang1 ) (if (= keys "l") ang1 ang2 ) r)))
  52.      (vla-delete obj)      
  53.      (entmakex (list '(0 . "LWPOLYLINE")
  54.                      '(100 . "AcDbEntity")
  55.                      '(100 . "AcDbPolyline")
  56.                      (cons 90 3)
  57.                      (cons 10 p1)
  58.                      (cons 42 (if (= keys "l") bulge (* -1.0 bulge) ))
  59.                      (cons 10 p2)
  60.                      (cons 40 w)
  61.                      (cons 41 0)                     
  62.                      (cons 10 p3)))
  63.      )
  64.    )
  65. (princ)
  66. )
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 23:19:42 | 显示全部楼层
请尝试下载此示例,arc by命令完全没有lisp。
ACW。图纸
AC.dwg
将其保存在支持路径中。
我很欣赏李的代码很酷一直都是很好的资源,我会一步一步地学习,在我能稳定行走之前我不会跳跃
回复

使用道具 举报

26

主题

145

帖子

122

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 23:22:30 | 显示全部楼层
很抱歉,谢谢你的帮助!
回复

使用道具 举报

26

主题

145

帖子

122

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 23:26:06 | 显示全部楼层
 
顺便说一句,我无法下载dwg文件, 你为什么不上传这个论坛?
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 23:30:11 | 显示全部楼层
也许论坛不允许直接链接?
https://www.dropbox.com/s/xkadpo5w3ypg60u/CW.dwg
https://www.dropbox.com/s/snfp52cotybyxe3/ACW.dwg
 
如果无法在此处下载,请将粘贴复制到浏览器。
回复

使用道具 举报

26

主题

145

帖子

122

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 23:33:00 | 显示全部楼层
 
不,链接可以!但是我不能下载。可能是网络问题。你可以在这里上传“zip”格式。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 06:00 , Processed in 0.664352 second(s), 82 queries .

© 2020-2025 乐筑天下

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