乐筑天下

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

[编程交流] 面积/介电常数脚本文件

[复制链接]

4

主题

17

帖子

13

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 06:34:56 | 显示全部楼层 |阅读模式
你好
 
我有一个autocad scr文件,它绘制了一条多段线
 
我可以使用以下命令返回多段线的面积
 
地区
o
0,60
 
这给了我面积=177529.36,周长=2510.37
 
有没有办法把这些数字作为文字添加到图纸中?
 
或者我可以使用任何命令来查找多段线的objectid,以便使用
 
%%).区域\f“%lu2”>%
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 06:41:18 | 显示全部楼层
测试一次。。。
  1. (defun c:PLabel (/ #Obj #Pnt #Id)
  2. (vl-load-com)
  3. (and (setq #Obj (car (entsel "\nSelect LWPolyline: ")))
  4.       (or (eq "LWPOLYLINE" (cdr (assoc 0 (entget #Obj))))
  5.           (alert "Invalid object!")
  6.       ) ;_ or
  7.       (setq #Pnt (getpoint "\nSpecify MText placement point: "))
  8.       (setq #Id (itoa (vla-get-objectid (vlax-ename->vla-object #Obj))))
  9.       (entmakex
  10.         (list '(0 . "MTEXT")
  11.               '(100 . "AcDbEntity")
  12.               '(100 . "AcDbMText")
  13.               '(71 . 5)
  14.               (cons 7 (getvar 'textstyle))
  15.               (cons 10 #Pnt)
  16.               (cons 1
  17.                     (strcat
  18.                       "Area: %<\\AcObjProp Object(%<\\_ObjId " #Id
  19.                       ">%).Area \\f "%lu2">%\\PPerimeter: %<\\AcObjProp Object(%<\\_ObjId " #Id
  20.                       " >%).Length \\f "%lu2">%"
  21.                      ) ;_ strcat
  22.               ) ;_ cons
  23.         ) ;_ list
  24.       ) ;_ entmakex
  25. ) ;_ and
  26. (princ)
  27. ) ;_ defun
回复

使用道具 举报

4

主题

17

帖子

13

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 06:41:35 | 显示全部楼层
呃,谢谢,但我如何在scr文件中使用它?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 06:44:45 | 显示全部楼层
你好
 
试试这个:
 
  1. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:GetAreas [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] *error* lst->str DOC IDS PT SS UFLAG[b][color=RED])[/color][/b]
  2. [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]
  3. [i][color=#990099];; Lee Mac  ~  18.03.10[/color][/i]
  4. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] *error* [b][color=RED]([/color][/b]msg[b][color=RED])[/color][/b]
  5.    [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] uFlag [b][color=RED]([/color][/b][b][color=BLUE]vla-EndUndomark[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  6.    [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]wcmatch[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcase[/color][/b] msg[b][color=RED])[/color][/b] [b][color=#a52a2a]"*BREAK,*CANCEL*,*EXIT*"[/color][/b][b][color=RED])[/color][/b]
  7.        [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"\n** Error: "[/color][/b] msg [b][color=#a52a2a]" **"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  8.    [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  9. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] lst->str [b][color=RED]([/color][/b]lst d1 d2[b][color=RED])[/color][/b]
  10.    [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] lst[b][color=RED])[/color][/b]
  11.      [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] d1 [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b] d2 [b][color=RED]([/color][/b]lst->str [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] lst[b][color=RED])[/color][/b] d1 d2[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  12.      [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] d1 [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  13. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#a52a2a]"ARC,CIRCLE,ELLIPE,HATCH,*POLYLINE,REGION"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  14.           [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pt [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#a52a2a]"\nPick Point for Field: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  15.    [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
  16.      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] uFlag [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-StartUndoMark[/color][/b]
  17.                         [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] doc [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b]
  18.                                     [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-acad-object[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  19.      
  20.      [b][color=RED]([/color][/b][b][color=BLUE]vlax-for[/color][/b] obj [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveSelectionSet[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  21.        [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] Ids [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]itoa[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ObjectId[/color][/b] obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b] Ids[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  22.      [b][color=RED]([/color][/b][b][color=BLUE]vla-delete[/color][/b] ss[b][color=RED])[/color][/b]
  23.      [b][color=RED]([/color][/b][b][color=BLUE]vla-AddMText[/color][/b]
  24.        [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=Blue]AcModelSpace [/color][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveSpace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  25.                [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=Blue]:vlax-true [/color][/b]  [b][color=RED]([/color][/b][b][color=BLUE]vla-get-MSpace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  26.          [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ModelSpace[/color][/b] doc[b][color=RED])[/color][/b]
  27.          [b][color=RED]([/color][/b][b][color=BLUE]vla-get-PaperSpace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  28.        [b][color=RED]([/color][/b][b][color=BLUE]vlax-3D-point[/color][/b] pt[b][color=RED])[/color][/b] [b][color=#009999]0.[/color][/b]
  29.        [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]=[/color][/b] [b][color=#009900]1[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]length[/color][/b] Ids[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  30.          [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"%<\\AcObjProp Object(%<\\_ObjId "[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] Ids[b][color=RED])[/color][/b] [b][color=#a52a2a]">%).Area \\f "[/color][color=#a52a2a]%lu6%qf1\[/color][/b][b][color=#a52a2a]">%"[/color][/b][b][color=RED])[/color][/b]
  31.          [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"%<\\AcExpr"[/color][/b] [b][color=RED]([/color][/b]lst->str Ids [b][color=#a52a2a]" %<\\AcObjProp Object(%<\\_ObjId "[/color][/b] [b][color=#a52a2a]">%).Area >% +"[/color][/b][b][color=RED])[/color][/b]
  32.                  [b][color=#a52a2a]">%).Area >% \\f "[/color][color=#a52a2a]%lu6%qf1\[/color][/b][b][color=#a52a2a]">%"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  33.      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] uFlag [b][color=RED]([/color][/b][b][color=BLUE]vla-EndUndomark[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  34. [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
回复

使用道具 举报

4

主题

17

帖子

13

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 06:48:23 | 显示全部楼层
也谢谢,你能告诉我如何使用上面的代码来获得我想要的结果吗。
 
对AutoCad来说有点陌生。谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 06:53:30 | 显示全部楼层
也许可以看看这里:
http://www.cadtutor.net/forum/showthread.php?t=1390
回复

使用道具 举报

6

主题

249

帖子

247

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 06:56:09 | 显示全部楼层
 
 
嗯,结果适得其反!!!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 06:59:35 | 显示全部楼层
是的,由于字段对象存储在文本字典中,而文本字典存储在ACAD_字段字典中,字段字典本身存储在文本、多行文字或属性的扩展字典中(无论您创建的是哪一个),因此无法使用entmake轻松创建字段。因此,要使用entmake,您必须在多行文字扩展词典中输入这些词典。
 
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:02:23 | 显示全部楼层
面积和周长的另一种变体
 
  1. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:GetAP [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] *error* lst->str DOC IDS PT SS UFLAG[b][color=RED])[/color][/b]
  2. [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]
  3. [i][color=#990099];; Lee Mac  ~  18.03.10[/color][/i]
  4. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] *error* [b][color=RED]([/color][/b]msg[b][color=RED])[/color][/b]
  5.    [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] uFlag [b][color=RED]([/color][/b][b][color=BLUE]vla-EndUndomark[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  6.    [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]wcmatch[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcase[/color][/b] msg[b][color=RED])[/color][/b] [b][color=#a52a2a]"*BREAK,*CANCEL*,*EXIT*"[/color][/b][b][color=RED])[/color][/b]
  7.        [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"\n** Error: "[/color][/b] msg [b][color=#a52a2a]" **"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  8.    [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  9. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] lst->str [b][color=RED]([/color][/b]lst d1 d2[b][color=RED])[/color][/b]
  10.    [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] lst[b][color=RED])[/color][/b]
  11.      [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] d1 [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b] d2 [b][color=RED]([/color][/b]lst->str [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] lst[b][color=RED])[/color][/b] d1 d2[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  12.      [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] d1 [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  13. [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#a52a2a]"\nSelect Objects to Retrieve Total Area + Perimeter..."[/color][/b][b][color=RED])[/color][/b]
  14. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#a52a2a]"ARC,CIRCLE,ELLIPE,HATCH,*POLYLINE,REGION"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  15.           [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pt [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#a52a2a]"\nPick Point for Field: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  16.    [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
  17.      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] uFlag [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-StartUndoMark[/color][/b]
  18.                         [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] doc [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b]
  19.                                     [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-acad-object[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  20.      
  21.      [b][color=RED]([/color][/b][b][color=BLUE]vlax-for[/color][/b] obj [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveSelectionSet[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  22.        [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] Ids [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]itoa[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ObjectId[/color][/b] obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b] Ids[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  23.      [b][color=RED]([/color][/b][b][color=BLUE]vla-delete[/color][/b] ss[b][color=RED])[/color][/b]
  24.      [b][color=RED]([/color][/b][b][color=BLUE]vla-AddMText[/color][/b]
  25.        [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=Blue]AcModelSpace [/color][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveSpace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  26.                [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=Blue]:vlax-true[/color][/b]   [b][color=RED]([/color][/b][b][color=BLUE]vla-get-MSpace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  27.          [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ModelSpace[/color][/b] doc[b][color=RED])[/color][/b]
  28.          [b][color=RED]([/color][/b][b][color=BLUE]vla-get-PaperSpace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  29.        [b][color=RED]([/color][/b][b][color=BLUE]vlax-3D-point[/color][/b] pt[b][color=RED])[/color][/b] [b][color=#009999]0.[/color][/b]
  30.        [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]=[/color][/b] [b][color=#009900]1[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]length[/color][/b] Ids[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  31.          [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"Area: %<\\AcObjProp Object(%<\\_ObjId "[/color][/b]
  32.                  [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] Ids[b][color=RED])[/color][/b] [b][color=#a52a2a]">%).Area \\f "[/color][color=#a52a2a]%lu6%qf1\[/color][/b][b][color=#a52a2a]">%"[/color][/b]
  33.                  [b][color=#a52a2a]"\\PPerimeter: %<\\AcObjProp Object(%<\\_ObjId "[/color][/b]
  34.                  [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] Ids[b][color=RED])[/color][/b] [b][color=#a52a2a]">%).Length \\f "[/color][color=#a52a2a]%lu6\[/color][/b][b][color=#a52a2a]">%"[/color][/b][b][color=RED])[/color][/b]
  35.          
  36.          [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"Area: %<\\AcExpr"[/color][/b]
  37.                  [b][color=RED]([/color][/b]lst->str Ids [b][color=#a52a2a]" %<\\AcObjProp Object(%<\\_ObjId "[/color][/b] [b][color=#a52a2a]">%).Area >% +"[/color][/b][b][color=RED])[/color][/b]
  38.                  [b][color=#a52a2a]">%).Area >% \\f "[/color][color=#a52a2a]%lu6%qf1\[/color][/b][b][color=#a52a2a]">%"[/color][/b]
  39.                  [b][color=#a52a2a]"\\PPerimeter: %<\\AcExpr"[/color][/b]
  40.                  [b][color=RED]([/color][/b]lst->str Ids [b][color=#a52a2a]" %<\\AcObjProp Object(%<\\_ObjId "[/color][/b] [b][color=#a52a2a]">%).Length >% +"[/color][/b][b][color=RED])[/color][/b]
  41.                  [b][color=#a52a2a]">%).Length >% \\f "[/color][color=#a52a2a]%lu6\[/color][/b][b][color=#a52a2a]">%"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]                  
  42.      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] uFlag [b][color=RED]([/color][/b][b][color=BLUE]vla-EndUndomark[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  43. [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 07:03:33 | 显示全部楼层
 
 
是的,我没想过。它放置字段,但您必须编辑文本一次。不知道为什么我一开始就用了entmake。
 
只是为了它能正常工作。。。
  1. (defun c:PLabel (/ #Obj #Pnt #Id)
  2. (vl-load-com)
  3. (and (setq #Obj (car (entsel "\nSelect LWPolyline: ")))
  4.       (or (eq "LWPOLYLINE" (cdr (assoc 0 (entget #Obj))))
  5.           (alert "Invalid object!")
  6.       ) ;_ or
  7.       (setq #Pnt (getpoint "\nSpecify MText placement point: "))
  8.       (setq #Id (itoa (vla-get-objectid (vlax-ename->vla-object #Obj))))
  9.       (AT:MText #Pnt
  10.                 (strcat
  11.                   "Area: %<\\AcObjProp Object(%<\\_ObjId " #Id
  12.                   ">%).Area \\f "%lu2">%\\PPerimeter: %<\\AcObjProp Object(%<\\_ObjId " #Id
  13.                   " >%).Length \\f "%lu2">%"
  14.                  ) ;_ strcat
  15.                 0
  16.                 nil
  17.                 5
  18.       ) ;_ AT:MText
  19. ) ;_ and
  20. (princ)
  21. ) ;_ defun

 
  1. ;;; Add MText to drawing
  2. ;;; #InsertionPoint - MText insertion point
  3. ;;; #String - String to place in created MText object
  4. ;;; #Width - Width of MText object (if nil, will be 0 width)
  5. ;;; #Layer - Layer to place Mtext object on (nil for current)
  6. ;;; #Justification - Justification # for Mtext object
  7. ;;;             1 or nil= TopLeft
  8. ;;;             2= TopCenter
  9. ;;;             3= TopRight
  10. ;;;             4= MiddleLeft
  11. ;;;             5= MiddleCenter
  12. ;;;             6= MiddleRight
  13. ;;;             7= BottomLeft
  14. ;;;             8= BottomCenter
  15. ;;;             9= BottomRight
  16. ;;; Alan J. Thompson, 05.23.09
  17. (defun AT:MText (#InsertionPoint #String #Width #Layer #Justification / #Width
  18.                 #Space #Insertion #Object
  19.                )
  20. (or #Width (setq #Width 0))
  21. (or *AcadDoc*
  22.      (setq *AcadDoc* (vla-get-activedocument (vlax-get-acad-object)))
  23. ) ;_ or
  24. (setq #Space     (if (or (eq acmodelspace
  25.                               (vla-get-activespace *AcadDoc*)
  26.                           ) ;_ eq
  27.                           (eq :vlax-true (vla-get-mspace *AcadDoc*))
  28.                       ) ;_ or
  29.                     (vla-get-modelspace *AcadDoc*)
  30.                     (vla-get-paperspace *AcadDoc*)
  31.                   ) ;_ if
  32.        #Insertion (cond
  33.                     ((vl-consp #InsertionPoint) (vlax-3d-point #InsertionPoint))
  34.                     ((eq (type #InsertionPoint) 'variant) #InsertionPoint)
  35.                     (T nil)
  36.                   ) ;_ cond
  37. ) ;_ setq
  38. ;; create MText object
  39. (setq #Object (vla-addmtext #Space #Insertion #Width #String))
  40. ;; change layer, if applicable
  41. (and #Layer
  42.       (tblsearch "layer" #Layer)
  43.       (vla-put-layer #Object #Layer)
  44. ) ;_ and
  45. ;; change justification & match insertion point with new justification
  46. (cond ((member #Justification (list 1 2 3 4 5 6 7 8 9))
  47.         (vla-put-attachmentpoint #Object #Justification)
  48.         (vla-move #Object
  49.                   (vla-get-InsertionPoint #Object)
  50.                   #Insertion
  51.         ) ;_ vla-move
  52.        )
  53. ) ;_ cond
  54. #Object
  55. ) ;_ defun
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 18:23 , Processed in 0.784922 second(s), 72 queries .

© 2020-2025 乐筑天下

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