Einführung in die NX-Sekundärentwicklung UF_VEC2_mag-Funktion

Autor des Artikels: Caspian
Quellenwebsite: https://blog.csdn.net/WangPaiFeiXingYuan

UF_VEC2_mag

Definiert in: uf_vec.h 
void UF_VEC2_mag(const double vec [ 2 ] , double * Magnitude )

Übersicht Übersicht

Berechnet die Größe eines Vektors.

Berechnet die Größe eines Vektors.

UFUN-Beispiel

Willkommen beim Abonnieren der „Caspian NX Secondary Development 3000-Beispielspalte“ https://blog.csdn.net/wangpaifeixingyuan/category_8840986.html . Klicken Sie auf den Link, um den Code zum Abonnieren zu scannen (kontinuierlich aktualisiert). Hunderte von Menschen haben sich angemeldet. Das Abonnement ist dauerhaft und kann auf unbestimmte Zeit gelesen werden. Wenn Sie Hilfe benötigen, senden Sie bitte eine private Nachricht .

Parameter Parameter

const double vec [ 2 ] Eingang Vektor, dessen Größe
erforderlich ist
doppelt * Größe Ausgabe Betrag der Vektorgröße =

Teilt

Anwendung und umfassende Analyse der C++-Sprache in der UG-Sekundärentwicklung

  1. C++ ist eine Erweiterung der C-Sprache. Es kann prozedurale Programmierung der C-Sprache, objektbasiertes Design, das durch abstrakte Datentypen gekennzeichnet ist, und objektorientierte Programmierung durchführen. C++ lässt sich hervorragend an die Größe der von ihm behandelten Probleme anpassen.
  2. C++ verfügt nicht nur über die praktischen Eigenschaften eines effizienten Computerbetriebs, sondern ist auch bestrebt, die Programmierqualität umfangreicher Programme und die Problembeschreibungsfähigkeiten von Programmiersprachen zu verbessern.

In der Sekundärentwicklung von UG weist die Sprache C++ die folgenden Merkmale auf

  1. Die Sprache C++ unterstützt mehrere Programmierstile
  2. Viele Funktionen von C++ liegen in Form von Bibliotheken vor, die die Einfachheit der Sprache und die Effizienz bei Entwicklung und Betrieb gewährleisten.
  3. Im Vergleich zur C-Sprache führt C++ das Konzept der Objektorientierung ein und macht die von UG entwickelte Mensch-Computer-Interaktionsschnittstelle prägnanter.
  4. Durch die Verwendung der mehr als 2.000 API-Funktionen, die UG mit sich bringt, kombiniert mit der Hochsprache C++ und der Programmiersoftware Visual Studio, kann UG sekundär entwickelt werden.
  5. Es ist zu beachten, dass es viele Versionen von Visual Studio und UG auf dem Markt gibt und nicht alle Versionen kompatibel sind.

Der Programmiervorgang umfasst in der Regel die folgenden Schritte:

  1. Problemanalyse: Führen Sie eine eingehende Analyse des zu lösenden Problems durch und verstehen Sie die spezifischen Bedürfnisse und Einschränkungen des Problems.
  2. Anforderungsdefinition: Klären Sie die Ziele und Funktionen des Programms, einschließlich Benutzeranforderungen, Systemanforderungen usw.
  3. Design: Design nach Bedarf, einschließlich Algorithmusdesign, Datenstrukturdesign, Schnittstellendesign usw.
  4. Codierung: Basierend auf den Designergebnissen wird eine Programmiersprache verwendet, um den Programmcode zu implementieren.
  5. Testen: Stellen Sie die Korrektheit des Programms durch verschiedene Testmethoden sicher, einschließlich Unit-Tests, Integrationstests, Systemtests usw.
  6. Wartung: Änderung und Verbesserung des Programms, um mögliche Probleme zu lösen oder neue Anforderungen zu erfüllen.
  7. Schreiben von Dokumenten: Schreiben Sie eine Programmdokumentation, um die Funktionen, Betriebsmethoden, Vorsichtsmaßnahmen usw. des Programms zu beschreiben.

Das Folgende ist ein Beispiel für die Sekundärentwicklung zur Erstellung von Voxel-Features (Blöcke, Zylinder, Kegel, Kugeln).

#include <stdio.h>
#include <stdarg.h>
#include <uf_modl_primitives.h>
#include <uf_ui_ugopen.h>
#include <uf.h>
#include <uf_defs.h>
//封装打印函数,用于将信息打印到信息窗口
//QQ3123197280
int ECHO(const char* szFormat, ...)
{
    
    
	char szMsg[5000] = "";
	va_list arg_ptr;
	va_start(arg_ptr, szFormat);
	vsprintf_s(szMsg, szFormat, arg_ptr);
	va_end(arg_ptr);
	UF_UI_open_listing_window();
	
	UF_UI_write_listing_window(szMsg);
	return 0;
}
extern DllExport void ufusr(char* param, int* returnCode, int rlen)
{
    
    
	UF_initialize();
	//创建块
	UF_FEATURE_SIGN sign = UF_NULLSIGN;
	//块起点相对于ABS
	double block_orig[3] = {
    
     0.0,0.0,0.0 };
	//方向相对于WCS
	char* block_len[3] = {
    
     "10", "30", "10" };
	tag_t blk_obj;//体特征
	UF_MODL_create_block1(sign, block_orig, block_len, &blk_obj);
	int iEdit = 0;  
	char* size[3];
	UF_MODL_ask_block_parms(blk_obj, iEdit, size);
	ECHO("%s,%s,%s\n", size[0], size[1], size[2]);//输出: p6=10,p7=30,p8=10
	//创建圆柱
	UF_FEATURE_SIGN sign1 = UF_NULLSIGN;
	double origin[3] = {
    
     10.0,0.0,10.0 };
	char  height[] = "20";
	char  diam[] = "10";
	double direction[3] = {
    
     0,0,1 };//方向
	tag_t  cyl_obj_id;
	UF_MODL_create_cyl1(sign1, origin, height, diam, direction, &cyl_obj_id);
	int iEdit2 = 0;  
	char* cDiameter;
	char* cHeight;
	UF_MODL_ask_cylinder_parms(cyl_obj_id, iEdit2, &cDiameter, &cHeight);
	ECHO("%s,%s\n", cDiameter, cHeight);//输出:p9=10,p10=20
	UF_free(cDiameter);
	UF_free(cHeight);
	//创建圆锥
	UF_FEATURE_SIGN sign2 = UF_NULLSIGN;
	double origin2[3] = {
    
     0.0,0.0,10.0 };
	char  height2[] = "20";
	char* diam2[2] = {
    
     "10" ,"5" };
	double direction2[3] = {
    
     0,0,1 };//方向
	tag_t  cone_obj_id;
	UF_MODL_create_cone1(sign2, origin2, height2, diam2, direction2, &cone_obj_id);
	int iEdit3 = 0;  
	char* cD1;
	char* cD2;
	char* cH;
	char* cAngle;
	UF_MODL_ask_cone_parms(cone_obj_id, iEdit3, &cD1, &cD2, &cH, &cAngle);
	ECHO("%s,%s,%s,%s\n", cD1, cD2, cH, cAngle);//输出:p11=10,p12=5,p13=20,p14=7.1250163489018
	UF_free(cD1);
	UF_free(cD2);
	UF_free(cH);
	UF_free(cAngle);
	//创建球
	UF_FEATURE_SIGN sign3 = UF_NULLSIGN;
	double douCenter2[3] = {
    
     0.0,0.0,30.0 };
	char  cDiam[] = "8";
	tag_t  sphere_obj_id;
	UF_MODL_create_sphere1(sign3, douCenter2, cDiam, &sphere_obj_id);
	int iEdit4 = 0;  
	char* cDiam_parm;
	UF_MODL_ask_sphere_parms(sphere_obj_id, iEdit4, &cDiam_parm);
	ECHO("%s\n", cDiam_parm);//输出:p15=8
	UF_free(cDiam_parm);
	UF_terminate();
}
extern int ufusr_ask_unload(void)
{
    
    
	return (UF_UNLOAD_IMMEDIATELY);
}

Wirkung:
Wirkung

おすすめ

転載: blog.csdn.net/WangPaiFeiXingYuan/article/details/135469329