乐筑天下

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

[编程交流] Entmake属性块

[复制链接]
gS7

35

主题

244

帖子

212

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-6 07:03:56 | 显示全部楼层 |阅读模式
嘿伙计们,
 
如何使用前缀、后缀和点号为该例程生成属性块
 
附加文件以供块参考
 
标记。图纸
 
 
 
 
  1. (defun c:test (/ *error* cmh   file hd wp export c)
  2.    (defun *error* (msg)
  3.     (if cmh(setvar 'cmdecho cmh))
  4.            (and att(setvar 'attreq att))
  5.            (and attd(setvar 'attdia attd))
  6.   
  7.         (and file (close file))
  8.     (cond
  9.             ((not msg))
  10.                 ((member msg '("Function cancelled" "quit / exit abort")))
  11.                 ((princ (strcat "\nError:" msg)))
  12.         )
  13.         (princ)
  14. )
  15. (setq cmh(getvar 'cmdecho))
  16.        (setq att(getvar 'attreq))
  17.        (setq attd(getvar 'attdia))
  18.        (setvar 'attreq 1)
  19.        (setvar 'attdia 0)
  20. (setvar 'cmdecho 0)
  21. (setq suff(getstring t (strcat "\nEnter Prefix:< " (getvar 'users4) " >:")))
  22. (if (or (= suff nil) (= suff ""))
  23.     (setq suff(getvar 'users4))
  24.    )
  25. (setq  pre (getstring t (strcat  "\nEnter Suffix:< "(getvar 'users5)" >:")))
  26. (if (or (= pre nil) (= pre ""))
  27.     (setq pre(getvar 'users5))
  28. )
  29. (setq c 1)
  30. (setq start(getint (strcat "\nEnter Starting No < " (rtos (getvar 'useri1) 2 0) " >:")))
  31. (if (or (= start "") (= start nil))
  32.     (setq start(getvar 'useri1))
  33. )
  34. (setq file(open "C:\" "w"))
  35. (setq hd(strcat "SL.No." "," "Easting(m)" "," "Northing(m)" "," "Tag Name"))
  36. (write-line hd file)
  37. (while (setq wp(getpoint (strcat  "\nPick Location to Create Tag Number < " suff (rtos start 2 0) pre ">:")))
  38.        (setq export(strcat (rtos c 2 0) "," (rtos (car wp)) "," (rtos (cadr wp)) "," (strcat suff (rtos start 2 0) pre)))
  39.            (write-line export file)
  40.            (princ "\nWriting Co-ordinate to csv file")
  41.                  [color="red"] ;;here i want to insert attribute block;;; [/color]
  42.            (setq start(1+ start))
  43.            (setq c(1+ c))
  44. )
  45. (close file)
  46. (setvar 'useri1 start)
  47. (setvar 'users4 suff)
  48. (setvar 'users5 pre)
  49. (*error* nil)
  50.    (princ)
  51. )
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

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

铜币
289
发表于 2022-7-6 07:17:44 | 显示全部楼层
但在用于插入之前,必须定义块:
 
要定义:
 
  1. (entmake '((0 . "BLOCK") (2 . "NodCond") (70 . 2) (8 . "0") (10 0 0 0) ; Isersion Point
  2.    (4 . " Description: NodCond  .\n\n Made by Costin Bosneag"))  ) ;_ end of e
  3. (entmake (list '(0 . "CIRCLE") '(8 . "0") '(10 0 0 0) (cons 40 radius)) ) ;_ end of e
  4. (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") '(6 . "Continuous")
  5.   '(8 . "0") '(43 . 0) '(90 . 2); 90 number of vertices
  6.   '(10 0 0) '(10 0 0) ) ; 70 = closed pline  (70 . 1) (list 10 x y)    ) ;_ end of e
  7. ;       1=The default value ; 2 =Tag   ; 3 =Promt
  8. (entmake (list '(0 . "ATTDEF") (cons 8 layer) '(10 0 0 0) '(70 . 0) '(1 . "Default Value") '(2 . "Prefix")
  9. '(3 . "Get Prefix :") (cons 40 htx) (list 11 x y 0) '(74 . 2)) )
  10. .....
  11. (entmake '((0 . "ENDBLK")) ) ;_ end of e  (8 . "0")

 
 
插入:
 
  1. (setq scb (getreal "\n   Get  Scale  for  Insersion  Block  :  "))
  2. (setq lisbx (cons 41 scb)  lisby (cons 42 scb)  lisbz (cons 43 scb) ) ;_ end of setq
  3. ; 41= X scale ; 42 = Y scale ; 43 = Z scale ;
  4. (entmake (list '(0 . "INSERT") '(2 . "NodCond") '(8 . "Insert Layer") '(66 . 1) (list 10 x y 0) lisbx  lisby  lisbz) ) ; insert Block
  5. (entmake (list '(0 . "ATTRIB") '(10 0 0 0) (cons 8 layer) (cons 1 text) '(2 . "tag") (cons 40 htx) '(70 . 0)  (list 11 x y 0) '(72 . 0) '(74 . 2)  )  )
  6.   .... Att 2 , Att 3 , .....
  7. (entmake '((0 . "SEQEND")) ) ; End Insert Block ! '(8 . "cod")
回复

使用道具 举报

GP_

8

主题

248

帖子

245

银币

初来乍到

Rank: 1

铜币
42
发表于 2022-7-6 07:27:28 | 显示全部楼层
@gS7
 
您知道系统变量用户不保存在DWG文件中吗?
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 07:38:08 | 显示全部楼层
GP Useri1-5 userr1-5 users1-5所有有效的SETVAR和保存在dwg中。
回复

使用道具 举报

GP_

8

主题

248

帖子

245

银币

初来乍到

Rank: 1

铜币
42
发表于 2022-7-6 07:39:23 | 显示全部楼层
 
用户1-5未保存,我不知道Autodesk为什么​​这个选择。
 
080359p0l2nmygxg57e55x.jpg
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 07:47:25 | 显示全部楼层
好的,谢谢你的更正,停止使用userr&我现在已经去字典了,当我认为它有效时,字典并不难使用
回复

使用道具 举报

gS7

35

主题

244

帖子

212

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-6 08:02:19 | 显示全部楼层
@Costinbos77非常感谢
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

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

铜币
289
发表于 2022-7-6 08:09:12 | 显示全部楼层
很高兴,还有一次。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 10:14 , Processed in 0.464324 second(s), 70 queries .

© 2020-2025 乐筑天下

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