明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1359|回复: 8

[源码] 多线mline绘制vla方法

[复制链接]
发表于 2024-4-16 16:53:33 | 显示全部楼层 |阅读模式
本帖最后由 dcl1214 于 2024-4-17 09:20 编辑

  1. (defun $make-mline$ (pts lst)
  2.                     ;($make-mline$(list (getpoint)(getpoint))(list(cons "比例" "随便")))

  3.   (setvar 'CELTSCALE 1.0)
  4.   (setvar 'LTSCALE 1.0)
  5.   (setvar 'PSLTSCALE 1.0)
  6.   (setvar 'MEASUREINIT 1)
  7.   (setvar 'MEASUREMENT 1)
  8.   (setvar 'CMLSCALE 20.0)
  9.   (setvar 'LUNITS 2)
  10.   (SETVAR "DIMLFAC" 1)
  11.   (if (and (= (rem (length (car pts)) 3) 0)
  12.            (>= (length pts) 2)
  13.       )
  14.     (PROGN (setq obj (vl-catch-all-apply
  15.                        'vla-addmline
  16.                        (list
  17.                          (vlax-get-property
  18.                            (vla-get-activedocument (vlax-get-acad-object))
  19.                            (if (= 1 (getvar 'CVPORT))
  20.                              'Paperspace
  21.                              'Modelspace
  22.                            )
  23.                          )
  24.                          (vl-catch-all-apply
  25.                            'vlax-make-variant
  26.                            (list
  27.                              (vl-catch-all-apply
  28.                                'vlax-safearray-fill
  29.                                (list
  30.                                  (vl-catch-all-apply
  31.                                    'vlax-make-safearray
  32.                                    (list
  33.                                      vlax-vbDouble
  34.                                      (cons 1 (* 3 (length pts)))
  35.                                    )
  36.                                  )
  37.                                  (apply 'append pts)
  38.                                )
  39.                              )
  40.                            )
  41.                          )
  42.                        )
  43.                      )
  44.            )
  45.            (vl-catch-all-apply
  46.              'vla-put-MLineScale
  47.              (list
  48.                obj
  49.                (cdr (assoc "比例" lst))
  50.              )
  51.            )
  52.     )
  53.   )
  54.   (SETQ ENT (VL-CATCH-ALL-APPLY 'VLAX-ENAME->VLA-OBJECT (LIST OBJ)))
  55.   (IF (VL-CATCH-ALL-ERROR-P ENT)
  56.     (SETQ ENT NIL)
  57.   )
  58.   ent
  59. )


评分

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

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-4-16 19:15:15 | 显示全部楼层
感谢杜总的分享!
发表于 2024-4-17 00:05:12 | 显示全部楼层
感谢大佬分享
发表于 2024-4-17 07:12:16 | 显示全部楼层
关于mline的帖子很少,给楼主点赞。
mline首先要进行设置,这才是关键。
 楼主| 发表于 2024-4-17 08:46:10 | 显示全部楼层
自贡黄明儒 发表于 2024-4-17 07:12
关于mline的帖子很少,给楼主点赞。
mline首先要进行设置,这才是关键。

增加了变量设置,您给审核一下
发表于 2024-4-17 09:17:18 | 显示全部楼层
本帖最后由 自贡黄明儒 于 2024-4-17 09:20 编辑
dcl1214 发表于 2024-4-17 08:46
增加了变量设置,您给审核一下

楼主客气了,也高看我了。当初我画型钢时,也想用mline来实现,当时看了一下样式设置,太复杂,也没有找到方法,就放弃了。

本帖子中包含更多资源

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

x
发表于 2024-4-21 22:12:12 | 显示全部楼层
很好→很棒!很好~很棒!!很好……很棒!!!
发表于 2024-6-26 16:51:50 | 显示全部楼层
杜总,这句话是不是错了啊  (SETQ ENT (VL-CATCH-ALL-APPLY 'VLAX-ENAME->VLA-OBJECT (LIST OBJ)))我觉得应该是(SETQ ENT (VL-CATCH-ALL-APPLY 'vlax-vla-object->ename  (LIST OBJ)))
发表于 2024-6-29 00:16:50 | 显示全部楼层

谢谢共享源码正需要,如何把对正方式改为上,现在的对正是无.
变量是CMLJUST
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 13:40 , Processed in 0.180600 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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