乐筑天下

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

[编程交流] 多行

[复制链接]

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 17:17:09 | 显示全部楼层 |阅读模式
你好
我是新来的,我只是想知道是否有一个lisp例程或任何类似的程序,可以让我自动加载我拥有的多行,而不是每次要加载不同的行时都必须进入框中选择它们。
 
谢谢
回复

使用道具 举报

49

主题

1246

帖子

1210

银币

后起之秀

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

铜币
254
发表于 2022-7-6 17:25:17 | 显示全部楼层
制作所有要使用的多行,然后将它们全部保存为块。然后,当您想要使用它们时,将它们导入,它将携带所有多行样式。
 
或者为预加载的新图形创建模板文件。任何一种方式都会奏效。
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 17:37:45 | 显示全部楼层
我所说的自动加载它们的意思是,如果我要创建一个下拉菜单,并在该下拉菜单下放置每个多行。我不知道这是否有意义。
回复

使用道具 举报

49

主题

1246

帖子

1210

银币

后起之秀

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

铜币
254
发表于 2022-7-6 17:44:28 | 显示全部楼层
不,这是有道理的,但老实说,你想要的有点多。如果使用工具选项板或其他工具导入它们,也同样简单。这就是如何在不学习编程的情况下创建可用的自定义工具和命令。
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 17:51:37 | 显示全部楼层
我工作的公司负责CAD/Microstation编程。这两个做这个程序的人更熟悉MS而不是AutoCAD。我们的一个客户所有这些菜单都是定制的,这是一个新的,他们希望纳入他们的标准。
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 17:56:49 | 显示全部楼层
可以在acad中保存所需的所有多行样式。mln文件(在Support文件夹中查找),并用lisp表达式调用它:
 
  1. (command "_.mline" "_st" "Your_Style_Name")

 
并从Toolpallete、Toolbar、下拉菜单调用此表达式,或编写简短的lisp命令从命令行调用。例如:
 
  1. (defun c:ml1()
  2. (command "_.mline" "_st" "Your_Style_Name")
  3. (princ)
  4. ); end of c:ml1

 
如果acad中不存在多行样式。mln对话框窗口将出现多行样式!
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 18:05:33 | 显示全部楼层
好的,谢谢大家。我会让他们知道的。其中一人只是在autodesk开发者网站上查看,他们在那里找不到答案。显然,他们想要的是摆脱使用MLSTYLE命令时出现的对话框。
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 18:15:12 | 显示全部楼层
您可以传递MLSTYLE对话框窗口和acad。mln文件。所有加载的多行样式都存储在“ACAD\u MLINESTYLE”字典中,您可以添加样式。这是我的多行样式添加函数之一:
 
  1. (defun asmi-mlStyleCreate(Quont / dxfLst topOrd Count mlDict)
  2. (setq dxfLst
  3.   (list'(0 . "MLINESTYLE")'(102 . "{ACAD_REACTORS")'(102 . "}")
  4.    '(100 . "AcDbMlineStyle")(cons 2(strcat(itoa Quont)"_PLINES"))
  5.    '(70 . 0)'(3 . "")'(62 . 256)'(51 . 1.5708)'(52 . 1.5708)
  6.     (cons 71 Quont))
  7.        Count 0.0
  8.        topOrd(-(/ Quont 2.0) 0.5)
  9.       ); end setq
  10. (repeat Quont
  11.     (setq dxfLst(append dxfLst
  12.                   (list(cons 49(- topOrd Count))
  13.                     '(62 . 256) '(6 . "BYLAYER")))
  14.           Count(1+ Count)
  15.    );end setq
  16.    ); end repeat
  17.    (if
  18.     (null
  19.       (member
  20.        (assoc 2 dxfLst)(dictsearch(namedobjdict)"ACAD_MLINESTYLE")))
  21.          (progn
  22.             (setq mlDict
  23.             (cdr
  24.               (assoc -1
  25.                 (dictsearch(namedobjdict)"ACAD_MLINESTYLE"))))
  26.              (dictadd mlDict(cdr(assoc 2 dxfLst))(entmakex dxfLst))
  27.     ); end progn
  28.     ); end if
  29.      (strcat(itoa Quont)"_PLINES")
  30.    ); end of asmi-mlStyleCreate

 
您可以尝试将例如“6_PLINES”样式添加为6行:
 
  1. Command: (asmi-mlStyleCreate 6)
  2. "6_PLINES"

 
可以将其他多线特性添加为线型,并将线之间的偏移距离添加为参数。
回复

使用道具 举报

2

主题

53

帖子

51

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 18:22:52 | 显示全部楼层
我说,只要将它们添加到标准模板中,所有新的DWG都将从中创建,因为这将避免您创建下拉菜单、工具栏按钮等。
 
对于在此添加到模板之前创建的旧dwg,只需在下拉列表中创建一个按钮或菜单项,插入模板dwg或块(如stykface建议的),然后在添加定义后取消或退出块插入。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 16:19 , Processed in 0.958100 second(s), 70 queries .

© 2020-2025 乐筑天下

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