plant(一)

用python脚本对图形进行构建,脚本的位置在C:\AutoCAD Plant 3D 2019 Content\CPak Common\CustomScripts,CustomScripts没有即自创

脚本的名称需要与函数的名称对应(相同)

案例一:

from aqa.math import *
from varmain.primitiv import *
from varmain.custom import *

@activate(Group="Support",
TooltipShort="Test script",
TooltipLong="This is a custom Testscript",
LengthUnit="in",
Ports=1)
@group("MainDimensions")
@param(D=LENGTH, TooltipShort="Cylinder Diameter", Ask4Dist=True)
@param(L=LENGTH, TooltipLong="Length of the Cylinder")
@param(OF=LENGTH0)
@group(Name="meaningless enum")
@param(K=ENUM)
@enum(1, "align X")
@enum(2, "align Y")
@enum(3, "align Z")
#--------------------------------------------------------
#(arxload "PnP3dACPAdapter")
#
def TESTSCRIPT(s, D=80.0, L=150.0, OF=-1, K=1, **kw):
    CYLINDER(s, R=D/2, H=L, O=0.0).rotateY(90)
    s.setPoint((0.0, 0.0, 0.0), (-1.0, 0.0, 0.0), 0.0)
    s.setPoint((L, 0.0, 0.0), ( 1.0, 0.0, 0.0), 0.0)

案例二:
增加# -- coding: utf-8 --用来支持中文

# -*- coding: utf-8 -*-
from varmain.primitiv import *
from varmain.custom import *

@activate(Group="Elbow", FirstPortEndtypes="FL", Ports=2, TooltipShort="Test script", TooltipLong="This is a custom Testscript", LengthUnit="in")

@group("MainDimensions")

@param(D=LENGTH, TooltipShort="Cylinder Diameter", Ask4Dist=True)
@param(L=LENGTH, TooltipLong="Length of the Cylinder")
@param(OF=LENGTH0)

def TESTSCRIPT2(s, D=80.0, L=150.0, OF=-1, **kw):
    CYLINDER(s, R=D/2, H=L, O=0.0).rotateY(90)
    s.setPoint((0.0, 0.0, 0.0), (-1.0, 0.0, 0.0), 0.0)
    s.setPoint((L, 0.0, 0.0), ( 1.0, 0.0, 0.0), 0.0)
  • Group表示脚本是Support组,与元件库中对应;
  • TooltipShort表示显示的名字;
  • TooltipLong表示描述;
  • LengthUnit表示长度单位是英寸;
  • 参数DLOFMainDimensions组中;
  • D带了一个标记Ask4Dist,表示它的长度可以通过模型给定的距离;
  • Kmeaningless enum组中。K是枚举值,1表示align X,2表示align Y等。
  • @active声明元数据;@group定义参数组;@param定义参数元数据;@enum定义枚举类型参数。

定义好脚本之后,以此输入三条命令:

# 注册脚本
PLANTREGISTERCUSTOMSCRIPTS
# 加载lisp命令
(arxload "PnP3dACPAdapter.arx")
# 测试对应的脚本。后面一个参数与函数的名称一一对应
(TESTACPSCRIPT "TESTSCRIPT01")

  • @activate:必须是第一个声明,声明脚本拥有这个元数据。允许定义以下属性: Group, FirstPortEndtypes, Ports, TooltipShort, TooltipLong, ThumbnailImage, ParamDimImage,
    SCEditDimImage, Language, LengthUnit

  • @group:定义参数组。通常在@param段声明,允许定义以下这些属性: Name, TooltipLong

  • @param:定义参数元数据,有以下这些属性: Name, Type, Value, TooltipShort, TooltipLong, Ask4Dist Name跟Type可以定义为类似@param(Name=”A”, Type=”ANGLE”,
    …)或@param(A=ANGLE, …)

  • @enum:定义枚举类型参数。声明如下:
    Value, TooltipLong
    声明遵循标准Python函数,它们可以被赋值位置或关键字

编译之后生成:

a. TestScript.pyc
编译好的二进制python文件。

b. ScriptGroup.xml

这个文件包括所有添加的组信息。例如,组名为“TESTSCRIPT”是“Support”。组名也可以是Plant3D的类名,例如“Eblow”,“Tee”等。

c. TESTSCRIPT.xml

这个文件描述了脚本“TestScript”的元数据。

d. Variants.xml

这个文件存放脚本的工具提示信息及它的参数、参数组名、枚举值。

e. Variants.map

这是个匹配文件,用来存放匹配脚本名跟脚本路径的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值