乐筑天下

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

***** 快速好用 自定 線型文字編輯器 *****

[复制链接]

75

主题

335

帖子

1059

银币

版主

Rank: 10Rank: 10

铜币
628
发表于 2020-12-12 13:35:00 | 显示全部楼层 |阅读模式
>>
可快速自定出你自己想要的 線型文字  並指定在那個圖層 也可編輯修改 線型文字
使用指令 :makelt

簡體版

繁體版

yquq032pxxh.jpg

yquq032pxxh.jpg


ix4nmr4iflf.jpg

ix4nmr4iflf.jpg


zrzpkzualuy.jpg

zrzpkzualuy.jpg


gjank2r0ihg.jpg

gjank2r0ihg.jpg

回复

使用道具 举报

43

主题

153

帖子

9

银币

后起之秀

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

铜币
325
发表于 2021-8-20 15:02:00 | 显示全部楼层
  1. ;;http://bbs.mjtd.com/thread-183496-1-1.html
  2. (defun c:tt (/ cmde lst p1 ss ss1)
  3.         (setq cmde (getvar "CMDECHO"))
  4.         (setvar "CMDECHO" 0)
  5.         (prompt "\n框选需要合并的表格:")
  6.         (while (setq ss (ssget))
  7.                 (setq lst (reverse (wyb-get-box ss)))
  8.                 (setq p1 (caar lst) lst (cdr lst))
  9.                 (if (/= lst nil)
  10.                         (foreach x lst
  11.                                 (setq ss1 (ssget "w" (car x) (cadr x)))
  12.                                 (vl-cmdf "_.move" ss1 "" "non" (list (caar x) (cadadr x)) "non" p1)
  13.                                 (setq p1 (polar p1 (* 1.5 pi) (distance (car x) (list (caar x) (cadadr x)))))
  14.                         )
  15.                         (prompt "\n没有需要合并的表格。")
  16.                 )
  17.                 (prompt "\n框选需要合并的表格:")
  18.         )
  19.         (setvar "CMDECHO" cmde)
  20.         (prompt "\n表格合并完成!")
  21.         (princ)
  22. )
  23. ;|= 4.2. 取得图元外矩形框
  24. ;@== (wyb-get-box ename)
  25. ;#== return: [plst]'((x1 y1 z1)_min (x2 y2 z2)_max)
  26. ;ver:
  27. ;    [1.0] 乐筑天下 Longxin, Gu_xl&邹锋
  28. ;    [1.1] by woyb 20151010
  29. ;    [1.1.1] ADD: 释放obj by woyb 20180730
  30. ;====================|;
  31. (defun wyb-get-box (@e / p1 p2 p3 p4 obj lst tmp)
  32.     (setq obj (vlax-ename->vla-object @e))
  33.     (if (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list obj 'p1 'p3))))
  34.         (progn
  35.             (setq p1 (vlax-safearray->list p1)
  36.                 p3 (vlax-safearray->list p3)
  37.                 p2 (list (car p1) (cadr p3) (caddr p1))
  38.                 p4 (list (car p3) (cadr p1) (caddr p1))
  39.             )
  40.             (if (= "SPLINE" (cdr (assoc 0 (entget @e))))
  41.                 (progn
  42.                     (setq lst
  43.                         (mapcar '(lambda  (a b) (vlax-curve-getClosestPointToProjection @e a b t))
  44.                             (list p1 p2 p3 p4)
  45.                             '((1.0 0 0) (0 -1.0 0) (-1.0 0 0) (0 1.0 0))
  46.                         )
  47.                     )
  48.                     (setq tmp
  49.                         (list
  50.                             (apply 'mapcar (cons 'min lst))
  51.                             (apply 'mapcar (cons 'max lst))
  52.                         )
  53.                     )
  54.                 )
  55.                 (setq tmp (list p1 p3))
  56.             )
  57.         )
  58.         (setq tmp nil)
  59.     )
  60.     (vlax-release-object obj)
  61.     tmp
  62. )
回复

使用道具 举报

15

主题

112

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
171
发表于 2021-8-13 17:52:00 | 显示全部楼层
楼主的程序挺好的,唯一的缺点就是线型中的文字不在线的起点和终点之间对中
可参考下这个,在论坛里的
;;示例(HH:InputBox "显示重量,便于拷贝" "重量显示" "5.3")
(defun HH:InputBox (promptstr title default)
  ;;(setq str (VL-PRIN1-TO-STRING default))
  (wscriptPublic (strcat "dim ret \n ret=InputBox(\""               promptstr
                         "\", \""            title               "\", \""
                         default            "\")"
                        )
  )
)
;;[功能] 创建带文字的线型
(defun c:makelt (/ EXPRT FILE FN SS STR)
  ;; 错误处理
  (defun *error* (msg)
    (vl-bt)
    (while (not (equal (getvar "cmdnames") "")) (command nil))
    (cond (exprt (setvar 'expert exprt)))
    (setvar "nomutt" 0)
    (princ "\n 出错啦!")
    (princ)
  )
  (setq exprt (getvar 'expert))
  ;;(setq str (getstring T "\n Enter string for linetype: "))
  (setvar "nomutt" 1)
  (cond        ((and (princ "\n 拾取或者输入线型文字")              
              (setq ss (ssget "_+.:E:S" '((0 . "TEXT"))))
         )         
         (setq str (cdr (assoc 1 (entget (ssname ss 0)))))         
        )
        (T         
         (while (equal (setq str (HH:InputBox "线型中有文字" "带文字线型" "电线")) ""))
        )
  )
  (setvar "nomutt" 0)
  (setq File (vl-filename-mktemp nil nil ".lin"))
  ;;(setq file (strcat (getvar 'dwgprefix) (vl-filename-base (getvar 'dwgname)) "_mylt.lin"))
  (setq fn (open file "w"))
  (setq exprt (getvar 'expert))
  (write-line (strcat "*" str ", ---" str "---") fn)
  (write-line (strcat "A,0.5,-0.05,[\""
                      str
                      "\",STANDARD,S=0.1,R=0.0,X=-0.0,Y=-.05],"
                      (rtos (* -0.1 (strlen str)) 2 3)
              )
              fn
  )
  (close fn)
  (setvar 'expert 5)
  (command ".-linetype" "load" "*" file "")
  (setvar 'expert exprt)
  (vl-file-delete file);这句好象没有什么用处
  (princ))
回复

使用道具 举报

75

主题

335

帖子

1059

银币

版主

Rank: 10Rank: 10

铜币
628
发表于 2021-8-19 11:36:00 | 显示全部楼层

如果你設定一個新線型 則新線型格式 會暫存在 程式的變數 ltdef  內
例: 查看變數內容     可在cad 的 Connand: !ltdef  按Enter
回應: "\n*USER,--- - ---BE--- - ---BE--- - ---BE--- - ---\nA,4.375,-1.25,1.25,-1.25,4.375,-1.91467,[\"BE\",Standard,S=1.5,R=0.0,X=-1.26467,Y=-0.75],-1.91467"
回复

使用道具 举报

20

主题

53

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
133
发表于 2020-12-12 19:39:00 | 显示全部楼层
上传了,不管用  请问怎么可以做出来废弃线型?

qi4hv10h5r4.png

qi4hv10h5r4.png


xdbq2shcuio.gif

xdbq2shcuio.gif

回复

使用道具 举报

75

主题

335

帖子

1059

银币

版主

Rank: 10Rank: 10

铜币
628
发表于 2020-12-12 20:52:00 | 显示全部楼层

廢氣管段 文字線型 操作方式

uqrjygugyhv.gif

uqrjygugyhv.gif

回复

使用道具 举报

20

主题

53

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
133
发表于 2020-12-13 07:56:00 | 显示全部楼层
和我上面发的线型不一样呀大神?我那个线型是5mm,1mm空格,实线上面有个x
回复

使用道具 举报

72

主题

617

帖子

30

银币

中流砥柱

Rank: 25

铜币
923
发表于 2020-12-13 08:12:00 | 显示全部楼层
太实用了,感谢楼主。
回复

使用道具 举报

93

主题

786

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1153
发表于 2020-12-13 12:09:00 | 显示全部楼层
很不错
简单的文字线型用这个创建很方便
可以考虑下加入文字旋转角度、是否居中等设定
另外注意下高版本里线型定义里的新参数
回复

使用道具 举报

93

主题

786

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1153
发表于 2020-12-13 12:57:00 | 显示全部楼层
新参数找到原帖了
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2024-11-22 01:54 , Processed in 0.162070 second(s), 75 queries .

© 2020-2024 乐筑天下

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